Kyle
2014-01-06 15:37:59
Please view the Reflection forum for any info regarding relfection or these includes: https://villavu.com/forum/forumdisplay.php?f=661
2014-01-06 15:37:59
2014-01-06 16:33:29
2014-01-06 17:10:23
2014-01-06 17:36:33
2014-01-07 03:34:57
From: elfyyy
Add me on Skype and we can talk. Its just my villavu name.
2014-01-07 04:11:06
From: Solar
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. :)
2014-01-07 04:52:47
2014-01-07 05:26:35
From: Solar
How do you get the most recent hooks? I tried looking on javahacking but have no idea what I'm looking at or for.
2014-01-07 05:44:46
From: Flight
@n3ss3s made a nifty little hook-grabber, you can find it here.
2014-01-07 07:49:05
Name: rat
ID: 1372
Combat: 1
Pos X: 3207
Pos Y: 3208
LoopCycle: 194992
MoveSpeed: 1
2014-01-07 08:22:10
From: Borland
Teaser :)
Name: rat
ID: 1372
Combat: 1
Pos X: 3207
Pos Y: 3208
LoopCycle: 194992
MoveSpeed: 1
2014-01-07 08:22:42
From: Borland
Teaser :)
Name: rat
ID: 1372
Combat: 1
Pos X: 3207
Pos Y: 3208
LoopCycle: 194992
MoveSpeed: 1
2014-01-07 09:27:43
From: Solar
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. :)
2014-01-07 09:53:07
From: Borland
Teaser :)
Name: rat
ID: 1372
Combat: 1
Pos X: 3207
Pos Y: 3208
LoopCycle: 194992
MoveSpeed: 1
2014-01-07 10:36:56
From: elfyyy
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!
2014-01-07 10:44:42
From: Solar
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.
2014-01-07 17:12:27
{$I SRL-OSR/SRL/misc/SmartGraphics.simba} var me: Integer; @ C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Player.simba(118:3)
2014-01-07 17:44:20
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
2014-01-08 17:50:10
######## 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
##########################
2014-01-08 19:24:38
2014-01-09 00:14:01
2014-01-09 11:55:14
2014-01-09 12:03:32
From: warpie
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).
2014-01-10 03:13:55
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;
}
}
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;
}
}
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;
}
}
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_CLOSE);
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());
}
}
}
}
}
}
}
2014-01-10 12:59:14
2014-01-16 11:11:26
2014-01-16 11:59:49
2014-01-17 19:51:39
2014-01-17 19:55:25
From: jagexwillneverwin
Just curious, are you guys planning on incorporating things that would help solve randoms into this eventually?
2014-01-17 20:30:48
From: elfyyy
Oh yeah! That's definitely the goal!
2014-01-19 10:03:18
2014-01-21 20:57:04
2014-01-21 21:01:26
2014-01-23 12:54:09
2014-01-23 13:56:09
From: samerdl
hooks are outdated from today's update, please update ;_)?
2014-01-23 14:15:37
2014-01-24 06:23:29
2014-01-24 07:12:01
From: Krazy_Meerkat
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 :)
2014-01-24 07:33:16
2014-01-24 18:23:35
From: Krazy_Meerkat
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
2014-01-27 16:32:03
2014-01-27 16:38:02
From: yayovio10
hello,just wondering why you commented this line
//{$include SRL-OSR/SRL/Reflection/AntiRandoms/Antirandoms.simba}
2014-01-29 10:06:52
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.
('hring hring', (2399, 3797), 11346, 0, 1237, -1, 0, 33679, 0)
//////.,.,2014-01-29 10:46:57
From: samerdl
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.
2014-01-30 12:37:09
2014-01-30 12:43:14
From: Unfold
R_IsAnimating doesn't work with fishing, it always says im not in animating…
2014-01-30 15:11:13
2014-01-30 17:23:45
From: Solar
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.
2014-01-30 17:40:21
2014-01-30 21:42:42
From: tiles.simba
function ProjectTiles;
Draws the mainscreen tile grid on screen
{$I SRL-OSR\SRL\misc\SmartGraphics.simba} 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 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); 2014-01-31 03:34:02
2014-01-31 05:39:32
From: kingarabian
@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?
From: DeSnob
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.
2014-01-31 14:28:38
From: Justin
There you go
2014-01-31 16:22:34
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;
2014-01-31 18:33:48
2014-01-31 19:11:40
2014-01-31 19:40:05
From: ibot_dung11
what are hooks?
2014-01-31 20:57:20
From: elfyyy
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.
2014-01-31 22:37:00
2014-01-31 22:41:57
2014-02-01 07:28:52
2014-02-01 23:56:19
2014-02-02 00:08:48
From: ibot_dung11
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
2014-02-02 00:16:49
From: elfyyy
Read the guide I have posted… The Tool that's made by Turpinator is in the include tools folder.
2014-02-02 04:06:45
2014-02-13 22:21:53
2014-02-15 07:42:49
2014-02-16 12:31:19
From: wthomas
This looks beautiful, makes me look at my old projects with good hopes.
2014-02-19 14:23:39
2014-02-19 14:46:58
From: wthomas
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 :(
2014-02-19 15:01:39
From: elfyyy
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. :)
2014-02-19 16:55:22
From: wthomas
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.
2014-02-19 17:26:25
2014-02-20 04:01:57
From: wthomas
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.
From: Sk1nyNerd
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
2014-02-20 10:08:46
From: Krazy_Meerkat
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..
2014-02-20 10:45:55
From: Sk1nyNerd
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
2014-02-20 19:28:49
2014-02-23 16:48:18
R_ChooseOptionTile(Option: String; Tile: TPoint): Boolean; R_ChooseOptionTile(button: variant; Tile: TPoint): Boolean; 2014-02-24 06:32:03
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.
2014-02-24 06:49:39
From: Krazy_Meerkat
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.
2014-02-24 07:01:59
From: Frement
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.
2014-02-24 07:22:12
From: Krazy_Meerkat
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;2014-02-24 08:31:18
2014-02-24 08:32:35
From: Zyt3x
@Krazy_Meerkat; I think you're overreacting here. What exactly are your points? The last post was nothing but flame towards Frement.
2014-02-24 08:32:45
From: Krazy_Meerkat
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.
2014-02-24 08:39:59
From: hoodz
isn't frement overreacting in the first place..
2014-02-24 09:05:54
From: Zyt3x
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.
From: Pakyakkistan
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…
2014-02-24 09:12:08
From: Krazy_Meerkat
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.
2014-02-24 10:03:54
From: Frement
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.
2014-02-24 10:12:18
From: Krazy_Meerkat
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.
2014-02-24 10:20:44
From: Frement
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.
2014-02-24 10:31:12
From: Krazy_Meerkat
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.
Reincarnate := True;
2014-02-24 10:57:19
From: Krazy_Meerkat
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?
2014-02-24 17:16:10
2014-02-24 17:30:47
2014-02-24 17:48:23
From: Officer Barbrady
How about a
R_FindNonInventoryRandoms;
and R_FindNormalRandoms;
Obviously R_FindNormalRandoms would include R_FindNonInventoryRandoms;
2014-02-24 17:55:52
From: Officer Barbrady
How about a
R_FindNonInventoryRandoms;
and R_FindNormalRandoms;
Obviously R_FindNormalRandoms would include R_FindNonInventoryRandoms;
2014-02-24 18:11:47
From: Sk1nyNerd
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
2014-02-24 18:23:52
From: Officer Barbrady
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
2014-02-24 18:44:23
From: Sk1nyNerd
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?
procedure findAllRandoms;
begin
findNormalRandom;
R_FindNormalRandoms;
end;
2014-02-24 19:02:04
From: Officer Barbrady
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
2014-02-24 20:16:57
2014-02-25 02:25:15
From: Officer Barbrady
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
2014-02-25 17:05:44
{$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;
2014-02-25 17:26:14
From: masterBB
{$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.
2014-02-28 10:39:05
2014-02-28 10:58:26
2014-02-28 11:03:23
From: Pakyakkistan
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
2014-02-28 11:28:41
From: Frement
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.
2014-03-02 18:19:16
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?2014-03-02 18:22:05
From: Sk1nyNerd
Can we get a variation ofthat 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?R_NearTile(Tile: TPoint; Distance: Integer): Boolean;
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
2014-03-02 18:32:20
From: Frement
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.
2014-03-02 18:35:56
From: Sk1nyNerd
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
2014-03-02 18:39:02
From: elfyyy
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.
2014-03-05 23:17:18
2014-03-06 06:11:44
From: elfyyy
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!
2014-03-06 07:08:22
2014-03-09 01:25:38
2014-03-09 03:50:28
From: elfyyy
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 :)
2014-03-10 03:32:38
procedure findAllRandoms;
begin
R_FindNormalRandoms;
findNormalRandoms;
FindNonInventoryRandoms;
end;
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;
2014-03-10 08:25:49
From: samerdl
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?
2014-03-10 11:04:16
From: Frement
The reflection include will call color solvers automatically, you only need to call R_FindNormalRandoms or R_FNRWait.
2014-03-10 11:13:31
From: Pakyakkistan
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?
2014-03-10 12:24:00
From: Frement
The reflection include will call color solvers automatically, you only need to call R_FindNormalRandoms or R_FNRWait.
2014-03-10 12:32:46
From: samerdl
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!.)
2014-03-10 12:33:07
From: samerdl
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!.)
2014-03-10 14:27:28
From: elfyyy
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.

2014-03-10 14:34:54
From: samerdl
Its the debugger that's causing my slow down, not script/smart. How do i get rid of it, its this:
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??
2014-03-10 14:51:07
2014-03-10 15:22:18
From: Solar
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.
2014-03-11 06:54:43
From: Solar
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.
2014-03-11 08:21:59
2014-03-12 01:09:00
From: P1nky
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
2014-03-12 12:44:06
From: elfyyy
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
2014-03-17 16:10:12
From: Pakyakkistan
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?
2014-03-18 17:06:12
From: elfyyy
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 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 :)
2014-03-27 14:45:58
2014-03-27 15:27:09
2014-03-29 05:59:07
2014-03-29 06:35:38
From: samerdl
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 :)?
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;
2014-03-29 08:33:10
From: Frement
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;
2014-03-29 08:35:40
From: samerdl
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!
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;
2014-03-31 08:43:51
From: Frement
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;
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;

2014-03-31 08:47:10
From: samerdl
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:
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!.
2014-03-31 08:48:10
From: Frement
So, what exactly is your question? Or does everything work good? :)
2014-03-31 09:04:48
From: samerdl
dang you reply fast, look at the post i edited above.
And ye was just reporting back in :D
2014-03-31 09:45:40
From: Frement
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).
2014-03-31 20:08:19
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,clYellow);
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):integer;
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,true);
wait(randomrange(500,600));
while aretalking do
ClickContinueEx(true,true);
wait(randomrange(1500,2000));
paintSuspects('Using Claw...');
mouse(R_TiletoMS(findMollyControls).x,R_TiletoMS(findMollyControls).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.tile).y,3,3,true);
while r_iswalking do
wait(1000);
while aretalking do
ClickContinueEx(true,true);
end;
end;
2014-04-01 09:08:51
2014-04-01 10:06:46
From: samerdl
vizzyy, solver looks really good.
I like how you map the door/molly/claw, will give it a try when i get the random.
2014-04-01 12:03:40
2014-04-02 21:36:50
From: elfyyy
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
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;2014-04-02 22:36:54
From: Robert
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
2014-04-03 01:17:30
2014-04-03 11:27:49
_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
2014-04-03 11:31:42
2014-04-03 11:40:36
From: Frement
Nice catch @ R_GetGroundItemsAt. I had it previously as _Node so there is a SmartFreeObject for _Node, forgot to change to _Next :)
SmartFreeObject(SmartCurrentTarget, _Next);
_Next := SmartGetFieldObject(SmartCurrentTarget, _Next, Node_next);
_Temp := _Next;
_Next := SmartGetFieldObject(SmartCurrentTarget, _Temp, Node_next);
SmartFreeObject(SmartCurrentTarget, _Temp);
2014-04-03 11:43:24
2014-04-03 14:24:36
2014-04-03 19:29:13
From: Xenobitz
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;
2014-04-11 15:01:10
R_WalkPath([Point(x, y), Point(x, y), Point(x, y)]);[Error] C:\Users\*\Simba\Scripts\***.simba(68:37): Type mismatch at line 682014-04-11 15:44:08
From: Xenobitz
After updating Reflection the following codeR_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?
2014-04-11 20:43:52
From: elfyyy
What you posted will work, nothing wrong with it. Probably is the line above throwing the error.
2014-04-11 21:41:03
From: Xenobitz
R_OpenDoor has become R_OpenDoorAtTile? Because that's the line above it
2014-04-24 15:46:24
2014-04-24 15:58:17
From: Unfold
I keep getting this, is this something with the hooks?![]()
2014-04-24 21:02:17
2014-04-24 21:05:02
From: Xenobitz
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.
2014-04-24 21:10:35
From: elfyyy
If you honestly have 23 scripts that is pretty impressive. You must be badly mistaken, we have never had those functions in the include.
2014-04-24 21:35:15
From: Xenobitz
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?
2014-05-03 16:01:24
(II)Lad; 'getItemComposite' returns 'ej.i'
2014-05-03 16:19:47
From: fish1328
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
2014-05-03 16:33:37
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.2014-05-03 16:35:45
From: Frement
And getItemComposite method caches the composites, and there are hooks for the caches, haven't had time to add that yet.
2014-05-03 16:45:32
From: fish1328
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 =)
2014-05-03 16:49:55
2014-05-03 16:55:02
Cache identified as fs [Extends java/lang/Object]
---> HashTable 'getHashTable' returns 'fs.q'
---> CacheableNode 'getCacheableNode' returns 'fs.e'
---> Queue 'getQueue' returns 'fs.j'
2014-05-03 17:00:32
From: fish1328
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
2014-05-03 17:17:02
function R_getModelSizeX(): Integer;
itemCache, itemCacheableNode: Integer;
begin
itemCache := SmartGetFieldObject(SmartCurrentTarget, 0, Client_getItemCache);
itemCacheableNode := SmartGetFieldObject(SmartCurrentTarget, itemCache, Cache_getCacheableNode);
result := SmartGetFieldInt(SmartCurrentTarget,itemCacheableNode , ItemComposite_getModelSizeX) * ItemComposite_getModelSizeX_Multiplier;
SmartFreeObject(SmartCurrentTarget, itemCache);
SmartFreeObject(SmartCurrentTarget, itemCacheableNode);
end;
2014-05-03 17:20:09
From: fish1328
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,itemCacheableNode , ItemComposite_getModelSizeX) * ItemComposite_getModelSizeX_Multiplier;
SmartFreeObject(SmartCurrentTarget, itemCache);
SmartFreeObject(SmartCurrentTarget, itemCacheableNode);
end;
That's using my hooks file: [ATTACH]23247[/ATTACH]
2014-05-03 17:23:23
2014-05-04 07:48:12
From: fish1328
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
2014-05-04 10:44:57
From: Krazy_Meerkat
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.
2014-05-04 18:42:38
2014-05-05 16:36:17
{ 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;
2014-05-05 17:58:03
2014-05-05 18:05:27
From: Robert
@185 fish1328; you could save the output to a file and have simba parse it, I believe @Brandon; posted a parser somewhere
2014-05-06 02:13:40
2014-05-06 14:58:36
2014-05-08 15:05:04
2014-05-08 16:26:23
{ 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;
2014-05-08 18:38:43
From: fish1328
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:
[ATTACH]23272[/ATTACH]
{ 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;
2014-05-08 20:04:46
2014-05-09 01:12:03
2014-05-09 02:06:23
From: Krazy_Meerkat
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
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;
2014-05-09 02:33:41
2014-05-09 03:36:37
From: Xenobitz
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;
2014-05-09 04:16:01
From: Brandon
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..
2014-05-09 11:12:00
2014-05-09 11:27:31
2014-05-09 12:25:19
2014-05-09 12:40:37
From: Krazy_Meerkat
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;Reflection succesfully setup!
Found Martin
(3074, 3259)
(183, 106)
*About 15-30 seconds later*
Moved Mouse
Right Clicked2014-05-09 13:12:19
2014-05-09 13:17:07
From: Xenobitz
It's only managed to accurately click the target once, and even then it didn't manage to select "Pick"
2014-05-09 13:44:56
From: Krazy_Meerkat
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
2014-05-09 14:13:07
2014-05-09 14:50:18
2014-05-09 15:18:28
From: fish1328
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))
2014-05-09 16:11:47
2014-05-10 12:47:01
2014-05-10 19:13:33
2014-05-15 06:05:48
{ 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;
2014-05-15 06:27:08
2014-05-15 08:56:24
2014-05-15 12:43:33
From: Krazy_Meerkat
New hooks are up, the include should update automatically.
function isinfight: boolean;
begin
result := (SRL_InFight) // or (R_infight) or (R_UnderAttack)
end;
2014-05-15 20:08:26
From: samerdl
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:.
SRL_InFight2014-05-16 03:45:49
From: Robert
Why not just useSRL_InFight
Instead of creating a function that's going to return the same thing :p
2014-05-16 05:48:54
2014-05-17 18:54:16
2014-05-18 12:59:28
2014-05-18 13:27:34
2014-05-18 14:54:37
From: fish1328
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)

2014-05-18 15:07:03
From: ineedbot
Hey thanks! I took a look at your hooks, did some comparing, and now I got game objects showing up!
All I changed was 'WorldObject' from 'c' to 'cm' and 'SceneTile_worldObjects' from 'w' to 't'.
2014-05-18 21:28:50
2014-05-19 01:29:52
2014-05-20 01:40:32
2014-05-20 02:33:21
2014-05-20 04:28:10
2014-05-20 11:33:22
From: Grunt
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?
2014-05-21 01:02:33
2014-05-21 01:05:21
From: Grunt
is it just me or did the hooks stop working?
2014-05-22 11:36:07
2014-05-22 14:55:59
2014-05-22 17:06:48
2014-05-22 17:19:14
2014-05-23 02:21:00
2014-05-23 09:35:22
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;
2014-05-23 21:23:38
2014-05-24 23:26:05
2014-05-25 04:08:52
2014-05-25 09:25:03
2014-05-27 08:39:38
2014-05-27 08:46:04
From: Eduard
It's down again?
2014-05-27 09:44:29
{ 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;
2014-05-27 09:46:20
2014-05-27 09:55:07
2014-05-27 10:11:14
2014-05-27 10:13:01
2014-05-27 10:24:33
From: fish1328
Simba isn't case sensitive with variable names is it?
2014-05-27 10:51:10
2014-05-27 12:27:10
2014-05-27 12:42:23
Widget_getItems = 'ds';
Widget_getStackSizes = 'da';
Widget_getID = 'i';
Widget_Y_Multiplier = -395318811;
2014-05-27 13:07:40
2014-05-27 14:40:50
2014-05-27 15:06:35
From: Nebula
fish's updater would be like 50x better if he edited the names it spits out to be the same names in the hooks.simba file
@samerdl can you upload your working hooks.simba file? :D
2014-05-27 15:46:03
From: Nebula
fish's updater would be like 50x better if he edited the names it spits out to be the same names in the hooks.simba file
@samerdl can you upload your working hooks.simba file? :D
[code]
{ 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';
NpcDefinition_id = 'u';
NpcDefinition_level = 'j';
{*NpcDefinition Multipliers*}
NpcDefinition_id_Multiplier = -515724329;
NpcDefinition_level_Multiplier = 590573207;
Actor_interacting = 'an';
Actor_interacting_Multiplier = 538168375;
Widget_getText = 'bi';
{* 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_getItems = 'ds';
Widget_getStackSizes = 'da';
Widget_getID = 'i';
Widget_Y_Multiplier = -395318811;
2014-05-27 16:07:23
From: samerdl
[code]
{ 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';
NpcDefinition_id = 'u';
NpcDefinition_level = 'j';
{*NpcDefinition Multipliers*}
NpcDefinition_id_Multiplier = -515724329;
NpcDefinition_level_Multiplier = 590573207;
Actor_interacting = 'an';
Actor_interacting_Multiplier = 538168375;
Widget_getText = 'bi';
{* 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_getItems = 'ds';
Widget_getStackSizes = 'da';
Widget_getID = 'i';
Widget_Y_Multiplier = -395318811;
Should work i think. (some stuff is outdated because fish didn't posted the updated stuff.
edit: messed up simba tags -.- if it throws error such as 'unknown identifier' just re-name it i guess :|. Hopefully hooks get updated fully =).
function R_TileToMSEx(X, Y, Height: Extended): TPoint;
var
Z, CurveX, CurveY, CurveCosX, CurveCosY, CurveSinX, CurveSinY, TempCalculation: Extended;
CalculatedScreenPosX, CalculatedScreenPosY: Integer;
begin
try
begin
if (X < 128) or (Y < 128) or (X > 13056) or (Y > 13056) then begin
Result := Point(-1, -1);
Exit;
end;
Z := -Height;
X := X - R_GetCameraX;
Y := Y - R_GetCameraY;
Z := Z - R_GetCameraZ;
CurveX := R_GetCameraYaw;
CurveY := R_GetCameraPitch;
CurveCosX := CURVECOS[Floor(CurveX)];
CurveCosY := CURVECOS[Floor(CurveY)];
CurveSinX := CURVESIN[Floor(CurveX)];
CurveSinY := CURVESIN[Floor(CurveY)];
TempCalculation := ashr(Round((CurveCosX * X) + (Y * CurveSinX)), 16);
Y := ashr(Round((Y * CurveCosX) - (X * CurveSinX)), 16);
X := Round(TempCalculation);
TempCalculation := ashr(Round((Z * CurveCosY) - (Y * CurveSinY)), 16);
Y := ashr(Round((Z * CurveSinY) - ((-CurveCosY) * Y)), 16);
Z := Round(TempCalculation);
if (Y < 50) then begin
Result := Point(-1, -1);
Exit;
end else begin
CalculatedScreenPosX := Round((((Floor(X) shl 9) / Y)));
IncEx(CalculatedScreenPosX, 256);
CalculatedScreenPosY := Round((((Floor(Z) shl 9) / Y)));
IncEx(CalculatedScreenPosY, 167);
Result := Point(CalculatedScreenPosX, CalculatedScreenPosY);
end;
end;
except
end;
end;
2014-05-27 17:20:15
2014-05-27 17:29:49
From: Nebula
This is working great, but when I first loaded it it gave me an out of range error anytime i used R_TileToMSEx. to fix I just made the entire function a try function so if anything goes wrong the script will just continue.
function R_TileToMSEx(X, Y, Height: Extended): TPoint;
var
Z, CurveX, CurveY, CurveCosX, CurveCosY, CurveSinX, CurveSinY, TempCalculation: Extended;
CalculatedScreenPosX, CalculatedScreenPosY: Integer;
begin
try
begin
if (X < 128) or (Y < 128) or (X > 13056) or (Y > 13056) then begin
Result := Point(-1, -1);
Exit;
end;
Z := -Height;
X := X - R_GetCameraX;
Y := Y - R_GetCameraY;
Z := Z - R_GetCameraZ;
CurveX := R_GetCameraYaw;
CurveY := R_GetCameraPitch;
CurveCosX := CURVECOS[Floor(CurveX)];
CurveCosY := CURVECOS[Floor(CurveY)];
CurveSinX := CURVESIN[Floor(CurveX)];
CurveSinY := CURVESIN[Floor(CurveY)];
TempCalculation := ashr(Round((CurveCosX * X) + (Y * CurveSinX)), 16);
Y := ashr(Round((Y * CurveCosX) - (X * CurveSinX)), 16);
X := Round(TempCalculation);
TempCalculation := ashr(Round((Z * CurveCosY) - (Y * CurveSinY)), 16);
Y := ashr(Round((Z * CurveSinY) - ((-CurveCosY) * Y)), 16);
Z := Round(TempCalculation);
if (Y < 50) then begin
Result := Point(-1, -1);
Exit;
end else begin
CalculatedScreenPosX := Round((((Floor(X) shl 9) / Y)));
IncEx(CalculatedScreenPosX, 256);
CalculatedScreenPosY := Round((((Floor(Z) shl 9) / Y)));
IncEx(CalculatedScreenPosY, 167);
Result := Point(CalculatedScreenPosX, CalculatedScreenPosY);
end;
end;
except
end;
end;
2014-05-27 17:32:16
From: Frement
If you don't call SetupReflection, you get an out of range error in that function.
2014-05-27 17:42:42
From: Frement
If you don't call SetupReflection, you get an out of range error in that function.
*****Nebula Law-Crafter*****
Running For: 3 Minutes and 27 Seconds
Exp Gained: 513
Exp Per Hour: 8921
laws crafted: 54
Laws per hour: 939
*************************
2014-05-27 18:23:46
Reflection Hooks are outdated
No need to post about it, we are currently working on it. ~ Reflection dev's2014-05-27 18:25:21
From: jman1208
I changed the hooks file to what is above. And i'm still getting this:Reflection Hooks are outdated
No need to post about it, we are currently working on it. ~ Reflection dev's
Am i missing a step?
{if HooksValid then
begin
R_SetupRandoms;
R_SetupCurves;
Writeln('Reflection succesfully setup!');
end else
TerminateScript;}
2014-05-27 18:25:25
if ((R_GetLoginState < 10) or (R_GetLoginState > 30)) then
2014-05-27 18:32:11
From: Nebula
I pretty much posted the solution in my last post.
in the function SetupReflection, put brackets around all of this:
{if HooksValid then
begin
R_SetupRandoms;
R_SetupCurves;
Writeln('Reflection succesfully setup!');
end else
TerminateScript;}
2014-05-27 18:43:45
(*
R_MyPlayerIsMoving
~~~~~~~~~~~
.. code-block:: pascal
function R_MyPlayerIsMoving(): Boolean;
Returns whether the users player is moving or not.
.. note::
by Cheddy
*)
function R_MyPlayerIsMoving(): Boolean;
var
playerObj: integer;
begin
playerObj := SmartGetFieldObject(SmartCurrentTarget, 0, Client_Player);
Result := (SmartGetFieldInt(SmartCurrentTarget, playerObj, Actor_PathLength) * Actor_PathLength_Multiplier) > 0;
SmartFreeObject(SmartCurrentTarget, playerObj);
end;
(*
R_NPCIsMoving
~~~~~~~~~~~
.. code-block:: pascal
function R_NPCIsMoving(npc : TNPC): Boolean;
Returns whether the NPC is moving or not.
.. note::
by Cheddy
*)
function R_NPCIsMoving(npc : TNPC): Boolean;
var
npcObj: integer;
begin
npcObj := SmartGetFieldArrayObject(SmartCurrentTarget, 0, Client_NPCs, npc.index);
Result := ((SmartGetFieldInt(SmartCurrentTarget, npcObj, Actor_PathLength) * Actor_PathLength_Multiplier)) > 0;
SmartFreeObject(SmartCurrentTarget, npcObj);
end;
2014-05-27 18:47:37
From: jman1208
Thank you sir! Sorry for the wasted post :). Time to finish up my plank maker :D
{ 189 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_Interacting = 'aw';
Actor_Interacting_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_ReflectionMouseX = 'dr.g';
Client_ReflectionMouseX_Multiplier = -476633551;
Client_ReflectionMouseY = 'dr.a';
Client_ReflectionMouseY_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';
{* ReflectionMouse - 0 Hooks *}
ReflectionMouse = 'dr';
{* Node - 3 Hooks *}
Node = 'gw';
Node_Next = 'el';
Node_Previous = 'eg';
Node_UID = 'dj';
{* NPC - 1 Hooks *}
NPC = 'aa';
NPC_Definition = 'y';
{* NPCDefinition - 4 Hooks *}
NPCDefinition = 'ag';
NPCDefinition_Actions = 'i';
NPCDefinition_ID = 'l';
NPCDefinition_ID_Multiplier = 1854256689;
NPCDefinition_Level = 'q';
NPCDefinition_Level_Multiplier = -2071384963;
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_GetItems = 'dv';
Widget_Height = 'h';
Widget_Height_Multiplier = 23827733;
Widget_GetID = 'q';
Widget_GetID_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_GetStackSizes = '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;
2014-05-27 19:26:49
2014-05-27 19:51:49
From: Grunt
so why not just make hook valid always return true?
edit: is there a function for telling whether or not your character is talking to an npc?
2014-05-27 19:55:20
From: Frement
R_InteractingNPC
2014-05-27 19:56:50
From: Nebula
this function doesn't work actually.
just use AreTalking. it's not reflection but it works.
2014-05-27 20:02:00
From: Frement
And why is that?
2014-05-27 20:08:33
From: Nebula
it just doesn't work, lol. I've tried using it before and I just tried using it now to verify. it doesnt work .
2014-05-27 21:00:57
From: Frement
Yeah, good explanation, you provided so much information I can tell you how to fix your problem very easily.
2014-05-27 21:11:44
2014-05-27 21:18:31
2014-05-27 21:26:16
function HooksValid: Boolean;
begin
if MouseSpeed = 0 then
begin
Writeln('It appears SetupSRL is below SetupReflection in current script');
Writeln('Please Change the order in the mainloop. ~ Reflection');
terminatescript;
end;
if ((R_GetLoginState < 10) or (R_GetLoginState > 30)) then
begin
Writeln('Reflection Hooks are outdated');
Writeln('No need to post about it, we are currently working on it. ~ Reflection dev''s');
Result := True; //Instead of Result := False;
end else
Result := True;
end;
2014-05-27 21:35:50
From: Wetish
If you updated them manually then you need to alter a function in Reflections.simba so that the script doesn't automatically terminate.function HooksValid: Boolean;
begin
if MouseSpeed = 0 then
begin
Writeln('It appears SetupSRL is below SetupReflection in current script');
Writeln('Please Change the order in the mainloop. ~ Reflection');
terminatescript;
end;
if ((R_GetLoginState < 10) or (R_GetLoginState > 30)) then
begin
Writeln('Reflection Hooks are outdated');
Writeln('No need to post about it, we are currently working on it. ~ Reflection dev''s');
Result := True; //Instead of Result := False;
end else
Result := True;
end;
2014-05-27 21:43:08
From: Dervish
Thank you, that worked and I don't understand how, isn't the problem that the hooks' names are different than those usually used ? How can they be still be "understood" by simba ?
2014-05-27 21:43:37
From: Dervish
Thank you, that worked and I don't understand how, isn't the problem that the hooks' names are different than those usually used ? How can they be still be "understood" by simba ?
2014-05-27 21:49:25
From: Wetish
I don't know what the LoginState has to do with hooks being outdated. I just looked for what was causing the script to stop and changed it since I knew I had updated hooks. As for the hooks with different names, it just doesn't use them. Those hooks are still broken.
From: Robert
hooks are passed to smart and smart sends the info back to simba.
Since the I guess the only valid login state is between 10 and 30 you can assume if those values don't work tyhe hook is broken
2014-05-27 22:09:54
2014-05-27 22:28:29
From: Robert
hooks are passed to smart and smart sends the info back to simba.
Since the I guess the only valid login state is between 10 and 30 you can assume if those values don't work tyhe hook is broken
2014-05-27 23:52:59
2014-05-28 00:53:14
2014-05-28 01:50:12
2014-05-28 02:15:04
2014-05-28 02:45:46
From: Frement
I'm active, now like me! :(
2014-05-28 08:01:47
Confirmed : needtobank.
Error: Out Of Range at line 465
The following DTMs were not freed: [SRL - Lamp bitmap, SRL - Book of Knowledge, 2, 3]
.. note::
by Frement < line 465
*)
function R_TileToMSEx(X, Y, Height: Extended): TPoint;
var 2014-05-28 08:06:28
From: Dervish
Hmm..? Getting an out of range at line 465 in Tiles.simba :Confirmed : needtobank.
Error: Out Of Range at line 465
The following DTMs were not freed: [SRL - Lamp bitmap, SRL - Book of Knowledge, 2, 3]
.. note::
by Frement < line 465
*)
function R_TileToMSEx(X, Y, Height: Extended): TPoint;
var
SetupReflection is called in the script.
2014-05-28 08:12:51
From: Frement
Is R_SetupCurves called in SetupReflection? If not, try calling it at the main loop before anything.
if HooksValid then
begin
R_SetupRandoms;
R_SetupCurves;
Writeln('Reflection succesfully setup!');
end else
2014-05-28 08:17:09
From: Dervish
It is indeed called :if HooksValid then
begin
R_SetupRandoms;
R_SetupCurves;
Writeln('Reflection succesfully setup!');
end else
2014-05-28 08:18:39
From: Frement
And "Reflection succesfully setup!" gets written to debug?
2014-05-28 09:04:08
2014-05-28 11:43:26
2014-05-28 12:30:24
2014-05-28 12:31:32
2014-05-28 13:14:43
From: Wetish
If you updated them manually then you need to alter a function in Reflections.simba so that the script doesn't automatically terminate.function HooksValid: Boolean;
begin
if MouseSpeed = 0 then
begin
Writeln('It appears SetupSRL is below SetupReflection in current script');
Writeln('Please Change the order in the mainloop. ~ Reflection');
terminatescript;
end;
if ((R_GetLoginState < 10) or (R_GetLoginState > 30)) then
begin
Writeln('Reflection Hooks are outdated');
Writeln('No need to post about it, we are currently working on it. ~ Reflection dev''s');
Result := True; //Instead of Result := False;
end else
Result := True;
end;
function HooksValid: Boolean; Override;
begin
Result := True;
end;But… we dont have lape.2014-05-28 14:07:59
From: Turpinator
an easier way would be to just override the function in a script of…But… we dont have lape.function HooksValid: Boolean; Override;
begin
Result := True;
end;
i vote we switch over to lape and integrate/work alongside with flight's aero lib
2014-05-28 14:08:48
From: Turpinator
an easier way would be to just override the function in a script of…But… we dont have lape.function HooksValid: Boolean; Override;
begin
Result := True;
end;
i vote we switch over to lape and integrate/work alongside with flight's aero lib
2014-05-28 15:04:26
2014-05-29 06:59:31
2014-05-29 13:17:42
Type TModel = Record
xVertices, yVertices, zVertices : TIntegerArray;
xIndices, yIndices, zIndices : TIntegerArray;
tile: TPoint;
verticesLength, indicesLength: Integer;
end;
TModelArray = Array of TModel;
function NULL_MODEL: TModel;
begin
with Result do
begin
Tile := Point(0, 0);
end;
end;
(*
R_NewModel
~~~~~~~~~~~
.. code-block:: pascal
function R_NewModel(obj : Integer): TModel;
Generates a TModel from a Java model
.. note::
by Cheddy
*)
function R_NewModel(obj : Integer): TModel;
var
i : Integer;
begin
with Result do
begin
verticesLength := SmartGetFieldInt(SmartCurrentTarget, obj, Model_VerticesLength);
indicesLength := SmartGetFieldInt(SmartCurrentTarget, obj, Model_IndicesLength);
for i := 0 to verticesLength do
begin
xVertices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_VerticesX, i);
yVertices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_VerticesY, i);
zVertices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_VerticesZ, i);
end;
for i := 0 to indicesLength do
begin
xIndices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_IndicesX, i);
yIndices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_IndicesY, i);
zIndices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_IndicesZ, i);
end;
end;
end;
(*
R_GetWorldObjectModel
~~~~~~~~~~~
.. code-block:: pascal
function R_GetWorldObjectModel(ob : Integer): TModel;
Gets the model associated with a world object
.. note::
by Cheddy
*)
function R_GetWorldObjectModel(ob : Integer): TModel;
var
obj : Integer;
begin
obj := SmartGetFieldObject(SmartCurrentTarget, ob, WorldObject_Renderable);
Result := R_NewModel(obj);
Result.tile := Point(SmartGetFieldInt(SmartCurrentTarget, ob, WorldObject_Get_X) * WorldObject_Get_X_Multiplier, SmartGetFieldInt(SmartCurrentTarget, ob, WorldObject_Get_Y) * WorldObject_Get_Y_Multiplier);
SmartFreeObject(SmartCurrentTarget, obj);
end;
(*
R_GetBoundaryObjectModel
~~~~~~~~~~~
.. code-block:: pascal
function R_GetBoundaryObjectModel(ob : Integer): TModel;
Gets the model associated with a boundary object
.. note::
by Cheddy
*)
function R_GetBoundaryObjectModel(ob : Integer): TModel;
var
obj : Integer;
begin
obj := SmartGetFieldObject(SmartCurrentTarget, ob, BoundaryObject_Renderable);
Result := R_NewModel(obj);
Result.tile := Point(SmartGetFieldInt(SmartCurrentTarget, ob, BoundaryObject_Get_X) * BoundaryObject_Get_X_Multiplier, SmartGetFieldInt(SmartCurrentTarget, ob, BoundaryObject_Get_Y) * BoundaryObject_Get_Y_Multiplier);
SmartFreeObject(SmartCurrentTarget, obj);
end;
(*
R_GetFloorDecorationObjectModel
~~~~~~~~~~~
.. code-block:: pascal
function R_GetFloorDecorationObjectModel(ob : Integer): TModel;
Gets the model associated with a floor decoration object
.. note::
by Cheddy
*)
function R_GetFloorDecorationObjectModel(ob : Integer): TModel;
var
obj : Integer;
begin
obj := SmartGetFieldObject(SmartCurrentTarget, ob, FloorDecorationObject_Renderable);
Result := R_NewModel(obj);
Result.tile := Point(SmartGetFieldInt(SmartCurrentTarget, ob, FloorDecorationObject_Get_X) * FloorDecorationObject_Get_X_Multiplier, SmartGetFieldInt(SmartCurrentTarget, ob, FloorDecorationObject_Get_Y) * FloorDecorationObject_Get_Y_Multiplier);
SmartFreeObject(SmartCurrentTarget, obj);
end;
(*
R_GetWallObjectModel
~~~~~~~~~~~
.. code-block:: pascal
function R_GetWallObjectModel(ob : Integer): TModel;
Gets the model associated with a wall object
.. note::
by Cheddy
*)
function R_GetWallObjectModel(ob : Integer): TModel;
var
obj : Integer;
begin
obj := SmartGetFieldObject(SmartCurrentTarget, ob, WallObject_Renderable);
Result := R_NewModel(obj);
Result.tile := Point(SmartGetFieldInt(SmartCurrentTarget, ob, WallObject_X) * WallObject_X_Multiplier, SmartGetFieldInt(SmartCurrentTarget, ob, WallObject_Y) * WallObject_Y_Multiplier);
SmartFreeObject(SmartCurrentTarget, obj);
end;
(*
R_GetPolygons
~~~~~~~~~~~
.. code-block:: pascal
function function R_GetPolygons(model : TModel): T2DPointArray;
Gets the clickable polygons for a model.
.. note::
by Cheddy
*)
function R_GetPolygons(model : TModel): T2DPointArray;
var
p1,p2,p3 : TPoint;
polys : T2DPointArray;
i : Integer;
begin
for i := 0 to High(model.xVertices) do
begin
p1 := R_TileToMSEx(model.tile.x + model.xVertices[model.xIndices[i]],model.tile.y + model.zVertices[model.xIndices[i]], 0 - model.yVertices[model.xIndices[i]]);
p2 := R_TileToMSEx(model.tile.x + model.xVertices[model.yIndices[i]],model.tile.y + model.zVertices[model.yIndices[i]], 0 - model.yVertices[model.yIndices[i]]);
p3 := R_TileToMSEx(model.tile.x + model.xVertices[model.zIndices[i]],model.tile.y + model.zVertices[model.zIndices[i]], 0 - model.yVertices[model.zIndices[i]]);
if((p1.x >= 0) and (p2.x >= 0) and (p3.x >= 0)) then
begin
polys[High(polys)] := [p1, p2, p3];
end;
end;
result := polys;
end;
(*
R_RandomModelPoint
~~~~~~~~~~~
.. code-block:: pascal
function R_RandomModelPoint(model : TModel): TPoint;
Gets a random clickable point within a TModel
.. note::
by Cheddy
*)
function R_RandomModelPoint(model : TModel): TPoint;
var
atpa : T2DPointArray;
tpa : TPointArray;
tempPoint : TPoint;
i : Integer;
begin
atpa := R_GetPolygons(model);
for i := 0 to 100 do
begin
tpa := atpa[RandomRange(0, High(atpa))];
tempPoint := Point(tpa[RandomRange(Low(tpa), High(tpa))].x,tpa[RandomRange(Low(tpa), High(tpa))].y);
if(PointInBox(tempPoint, MSBox)) then
begin
result := tempPoint;
exit;
end;
end;
if(not PointInBox(tempPoint, MSBox)) then
begin
result := Point(-1, -1);
exit;
end;
end;
(*
R_ClickModel
~~~~~~~~~~~
.. code-block:: pascal
function R_ClickModel(model : TModel, left : Boolean): Boolean;
Returns whether the NPC is moving or not.
.. note::
by Cheddy
*)
function R_ClickModel(model : TModel; button : Variant): Boolean;
var
p : TPoint;
begin
p := R_RandomModelPoint(model);
if(not PointInBox(p, MSBox)) then
begin
result := false;
exit;
end;
Mouse(p.x,p.y,0,0, button);
result := true;
end;
2014-05-30 14:54:32
From: fish1328
These are completely untested at the minute. Just ported them from my Java bot…
Will test and fix later tonight
Type TModel = Record
xVertices, yVertices, zVertices : TIntegerArray;
xIndices, yIndices, zIndices : TIntegerArray;
tile: TPoint;
verticesLength, indicesLength: Integer;
end;
TModelArray = Array of TModel;
function NULL_MODEL: TModel;
begin
with Result do
begin
Tile := Point(0, 0);
end;
end;
(*
R_NewModel
~~~~~~~~~~~
.. code-block:: pascal
function R_NewModel(obj : Integer): TModel;
Generates a TModel from a Java model
.. note::
by Cheddy
*)
function R_NewModel(obj : Integer): TModel;
var
i : Integer;
begin
with Result do
begin
verticesLength := SmartGetFieldInt(SmartCurrentTarget, obj, Model_VerticesLength);
indicesLength := SmartGetFieldInt(SmartCurrentTarget, obj, Model_IndicesLength);
for i := 0 to verticesLength do
begin
xVertices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_VerticesX, i);
yVertices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_VerticesY, i);
zVertices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_VerticesZ, i);
end;
for i := 0 to indicesLength do
begin
xIndices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_IndicesX, i);
yIndices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_IndicesY, i);
zIndices[i] := SmartGetFieldArrayInt(SmartCurrentTarget, obj, Model_IndicesZ, i);
end;
end;
end;
(*
R_GetWorldObjectModel
~~~~~~~~~~~
.. code-block:: pascal
function R_GetWorldObjectModel(ob : Integer): TModel;
Gets the model associated with a world object
.. note::
by Cheddy
*)
function R_GetWorldObjectModel(ob : Integer): TModel;
var
obj : Integer;
begin
obj := SmartGetFieldObject(SmartCurrentTarget, ob, WorldObject_Renderable);
Result := R_NewModel(obj);
Result.tile := Point(SmartGetFieldInt(SmartCurrentTarget, ob, WorldObject_Get_X) * WorldObject_Get_X_Multiplier, SmartGetFieldInt(SmartCurrentTarget, ob, WorldObject_Get_Y) * WorldObject_Get_Y_Multiplier);
SmartFreeObject(SmartCurrentTarget, obj);
end;
(*
R_GetBoundaryObjectModel
~~~~~~~~~~~
.. code-block:: pascal
function R_GetBoundaryObjectModel(ob : Integer): TModel;
Gets the model associated with a boundary object
.. note::
by Cheddy
*)
function R_GetBoundaryObjectModel(ob : Integer): TModel;
var
obj : Integer;
begin
obj := SmartGetFieldObject(SmartCurrentTarget, ob, BoundaryObject_Renderable);
Result := R_NewModel(obj);
Result.tile := Point(SmartGetFieldInt(SmartCurrentTarget, ob, BoundaryObject_Get_X) * BoundaryObject_Get_X_Multiplier, SmartGetFieldInt(SmartCurrentTarget, ob, BoundaryObject_Get_Y) * BoundaryObject_Get_Y_Multiplier);
SmartFreeObject(SmartCurrentTarget, obj);
end;
(*
R_GetFloorDecorationObjectModel
~~~~~~~~~~~
.. code-block:: pascal
function R_GetFloorDecorationObjectModel(ob : Integer): TModel;
Gets the model associated with a floor decoration object
.. note::
by Cheddy
*)
function R_GetFloorDecorationObjectModel(ob : Integer): TModel;
var
obj : Integer;
begin
obj := SmartGetFieldObject(SmartCurrentTarget, ob, FloorDecorationObject_Renderable);
Result := R_NewModel(obj);
Result.tile := Point(SmartGetFieldInt(SmartCurrentTarget, ob, FloorDecorationObject_Get_X) * FloorDecorationObject_Get_X_Multiplier, SmartGetFieldInt(SmartCurrentTarget, ob, FloorDecorationObject_Get_Y) * FloorDecorationObject_Get_Y_Multiplier);
SmartFreeObject(SmartCurrentTarget, obj);
end;
(*
R_GetWallObjectModel
~~~~~~~~~~~
.. code-block:: pascal
function R_GetWallObjectModel(ob : Integer): TModel;
Gets the model associated with a wall object
.. note::
by Cheddy
*)
function R_GetWallObjectModel(ob : Integer): TModel;
var
obj : Integer;
begin
obj := SmartGetFieldObject(SmartCurrentTarget, ob, WallObject_Renderable);
Result := R_NewModel(obj);
Result.tile := Point(SmartGetFieldInt(SmartCurrentTarget, ob, WallObject_X) * WallObject_X_Multiplier, SmartGetFieldInt(SmartCurrentTarget, ob, WallObject_Y) * WallObject_Y_Multiplier);
SmartFreeObject(SmartCurrentTarget, obj);
end;
(*
R_GetPolygons
~~~~~~~~~~~
.. code-block:: pascal
function function R_GetPolygons(model : TModel): T2DPointArray;
Gets the clickable polygons for a model.
.. note::
by Cheddy
*)
function R_GetPolygons(model : TModel): T2DPointArray;
var
p1,p2,p3 : TPoint;
polys : T2DPointArray;
i : Integer;
begin
for i := 0 to High(model.xVertices) do
begin
p1 := R_TileToMSEx(model.tile.x + model.xVertices[model.xIndices[i]],model.tile.y + model.zVertices[model.xIndices[i]], 0 - model.yVertices[model.xIndices[i]]);
p2 := R_TileToMSEx(model.tile.x + model.xVertices[model.yIndices[i]],model.tile.y + model.zVertices[model.yIndices[i]], 0 - model.yVertices[model.yIndices[i]]);
p3 := R_TileToMSEx(model.tile.x + model.xVertices[model.zIndices[i]],model.tile.y + model.zVertices[model.zIndices[i]], 0 - model.yVertices[model.zIndices[i]]);
if((p1.x >= 0) and (p2.x >= 0) and (p3.x >= 0)) then
begin
polys[High(polys)] := [p1, p2, p3];
end;
end;
result := polys;
end;
(*
R_RandomModelPoint
~~~~~~~~~~~
.. code-block:: pascal
function R_RandomModelPoint(model : TModel): TPoint;
Gets a random clickable point within a TModel
.. note::
by Cheddy
*)
function R_RandomModelPoint(model : TModel): TPoint;
var
atpa : T2DPointArray;
tpa : TPointArray;
tempPoint : TPoint;
i : Integer;
begin
atpa := R_GetPolygons(model);
for i := 0 to 100 do
begin
tpa := atpa[RandomRange(0, High(atpa))];
tempPoint := Point(tpa[RandomRange(Low(tpa), High(tpa))].x,tpa[RandomRange(Low(tpa), High(tpa))].y);
if(PointInBox(tempPoint, MSBox)) then
begin
result := tempPoint;
exit;
end;
end;
if(not PointInBox(tempPoint, MSBox)) then
begin
result := Point(-1, -1);
exit;
end;
end;
(*
R_ClickModel
~~~~~~~~~~~
.. code-block:: pascal
function R_ClickModel(model : TModel, left : Boolean): Boolean;
Returns whether the NPC is moving or not.
.. note::
by Cheddy
*)
function R_ClickModel(model : TModel; button : Variant): Boolean;
var
p : TPoint;
begin
p := R_RandomModelPoint(model);
if(not PointInBox(p, MSBox)) then
begin
result := false;
exit;
end;
Mouse(p.x,p.y,0,0, button);
result := true;
end;
2014-05-31 08:39:11
2014-05-31 14:29:33
2014-05-31 18:36:59
2014-06-01 00:01:01
2014-06-01 07:18:04
2014-06-01 10:18:01
2014-06-01 10:50:00
From: Dervish
Can someone please explain what a model is ?
2014-06-01 11:09:24
From: Robert
Players, plants, trees, npcs all have models like this:![]()
2014-06-01 13:28:52
From: Dervish
So its the "graphic part" of an object?
2014-06-01 15:35:49
From: masterBB
A model is a collection of triangles making up any 3 dimensional object.
Vertices are the 3D points:
[100, 100, 100]
[200, 100, 100]
[200, 200, 100]
[100, 200, 100]
Indices are the indexes of the 3D point array making a triangle
[0,1,2]
[0,2,3]
This would make two triangles, making up a square.
2014-06-01 16:34:02
From: Dervish
Thanks alot for explaining this ! What is it that makes the process of getting the model so slow ? (fish's post)
function R_GetPolygons(model : TModel): T2DPointArray;
var
p1,p2,p3 : TPoint;
polys : T2DPointArray;
i, j : Integer;
begin
for i := 0 to High(model.xVertices) do
begin
p1 := R_TileToMSEx(model.tile.x + model.xVertices[model.xIndices[i]],model.tile.y + model.zVertices[model.xIndices[i]], 0 - model.yVertices[model.xIndices[i]]);
p2 := R_TileToMSEx(model.tile.x + model.xVertices[model.yIndices[i]],model.tile.y + model.zVertices[model.yIndices[i]], 0 - model.yVertices[model.yIndices[i]]);
p3 := R_TileToMSEx(model.tile.x + model.xVertices[model.zIndices[i]],model.tile.y + model.zVertices[model.zIndices[i]], 0 - model.yVertices[model.zIndices[i]]);
if((p1.x >= 0) and (p2.x >= 0) and (p3.x >= 0)) then
begin
polys[High(polys)] := [p1, p2, p3];
end;
end;
result := polys;
end;function R_GetPolygons(model : TModel): T2DPointArray;
var
p1,p2,p3 : TPoint;
projectedPts, polys : T2DPointArray;
i : Integer;
begin
SetLength(projectedPts, Length(model.xVertices));
for i := 0 to High(model.xVertices) do
projectedPts := R_TileToMSEx(model.tile.x + model.xVertices[i],model.tile.y + model.zVertices[i], 0 - model.yVertices[i]);
for j := 0 to High(model.xIndices) do
begin
p1 := projectedPts[model.xIndices[j]];
p2 := projectedPts[model.yIndices[j]];
p3 := projectedPts[model.zIndices[j]];
if((p1.x >= 0) and (p2.x >= 0) and (p3.x >= 0)) then
polys[High(polys)] := [p1, p2, p3];
end;
result := polys;
end;2014-06-02 12:45:49
2014-06-04 02:09:39
From: masterBB
A model is a collection of triangles making up any 3 dimensional object.
Vertices are the 3D points:
[100, 100, 100]
[200, 100, 100]
[200, 200, 100]
[100, 200, 100]
Indices are the indexes of the 3D point array making a triangle
[0,1,2]
[0,2,3]
This would make two triangles, making up a square.
2014-06-04 04:19:09
2014-06-04 08:11:20
[Error] C:\Simba\Includes\SRL-OSR\SRL\core\mapwalk.simba(20:8): Unknown identifier 'R_TileToMM' at line 202014-06-04 08:15:24
From: P1nky
[Error] C:\Simba\Includes\SRL-OSR\SRL\core\mapwalk.simba(20:8): Unknown identifier 'R_TileToMM' at line 20
Too late/early for me to try solve atm, please if someone can tell me the solution; Probably a easy fix.
Cheers.
2014-06-04 08:18:12
From: hoodz
are your folders correct?
[Error] C:\Simba\Includes\SRL-OSR\SRL\core\mapwalk.simba(20:8) <- this is just the srl-osr include but R_TileToMM is a reflection function which is not found in the srl-osr include.
You will want to extract it to Simba/Includes/SRL-OSR/SRL.
Once there, you will need to rename it to "reflection" without the "".
2014-06-04 08:38:33
From: P1nky
Where should it be located?
E:
I just followed these instructions:
2014-06-15 13:45:12
function R_GetWidgetModelID(WidgetPointer: Integer): Integer;
begin
result := smartGetFieldInt(smartCurrentTarget, WidgetPointer, 'af') * -1749303759;
writeln('R_GetWidgetModelID Debug - WidgetPointer '+intToStr(WidgetPointer)+' Result: '+intToStr(Result));
end; 
[137]
0=Index: (137) ChildIndex: (0) Widget: (432925428) Text: () Model: (160763239)
1=Index: (137) ChildIndex: (1) Widget: (432925372) Text: (Name HERE: <col=0000ff>*) Model: (160763239)
2=Index: (137) ChildIndex: (2) Widget: (432925312) Text: () Model: (160763239)
3=Index: (137) ChildIndex: (3) Widget: (432925232) Text: () Model: (160763239)
4=Index: (137) ChildIndex: (4) Widget: (432923212) Text: () Model: (160763239)
5=Index: (137) ChildIndex: (5) Widget: (432923148) Text: () Model: (160763239)
6=Index: (137) ChildIndex: (6) Widget: (432925132) Text: () Model: (160763239)
7=Index: (137) ChildIndex: (7) Widget: (432925068) Text: () Model: (160763239)
8=Index: (137) ChildIndex: (8) Widget: (432923004) Text: () Model: (160763239)
9=Index: (137) ChildIndex: (9) Widget: (432922988) Text: () Model: (160763239)
10=Index: (137) ChildIndex: (10) Widget: (432924956) Text: () Model: (160763239)
11=Index: (137) ChildIndex: (11) Widget: (432922908) Text: () Model: (160763239)
12=Index: (137) ChildIndex: (12) Widget: (432922860) Text: () Model: (160763239)
13=Index: (137) ChildIndex: (13) Widget: (432922816) Text: () Model: (160763239)
14=Index: (137) ChildIndex: (14) Widget: (432924836) Text: () Model: (160763239)
15=Index: (137) ChildIndex: (15) Widget: (432924800) Text: () Model: (160763239)
16=Index: (137) ChildIndex: (16) Widget: (432924792) Text: () Model: (160763239)
17=Index: (137) ChildIndex: (17) Widget: (432924764) Text: () Model: (160763239)
18=Index: (137) ChildIndex: (18) Widget: (432924736) Text: () Model: (160763239)
19=Index: (137) ChildIndex: (19) Widget: (435774620) Text: () Model: (160763239)
20=Index: (137) ChildIndex: (20) Widget: (435774592) Text: () Model: (160763239)
21=Index: (137) ChildIndex: (21) Widget: (435774544) Text: () Model: (160763239)
22=Index: (137) ChildIndex: (22) Widget: (435774516) Text: () Model: (160763239)
23=Index: (137) ChildIndex: (23) Widget: (432924684) Text: () Model: (160763239)
24=Index: (137) ChildIndex: (24) Widget: (432924656) Text: () Model: (160763239)
25=Index: (137) ChildIndex: (25) Widget: (432924628) Text: () Model: (160763239)
26=Index: (137) ChildIndex: (26) Widget: (432924600) Text: () Model: (160763239)
27=Index: (137) ChildIndex: (27) Widget: (432924572) Text: () Model: (160763239)
28=Index: (137) ChildIndex: (28) Widget: (432924512) Text: () Model: (160763239)
29=Index: (137) ChildIndex: (29) Widget: (432924504) Text: () Model: (160763239)
30=Index: (137) ChildIndex: (30) Widget: (432924468) Text: () Model: (160763239)
31=Index: (137) ChildIndex: (31) Widget: (432924440) Text: () Model: (160763239)
32=Index: (137) ChildIndex: (32) Widget: (432924412) Text: () Model: (160763239)
33=Index: (137) ChildIndex: (33) Widget: (432924344) Text: () Model: (160763239)
34=Index: (137) ChildIndex: (34) Widget: (432924316) Text: () Model: (160763239)
35=Index: (137) ChildIndex: (35) Widget: (432924308) Text: () Model: (160763239)
36=Index: (137) ChildIndex: (36) Widget: (432924280) Text: () Model: (160763239)
37=Index: (137) ChildIndex: (37) Widget: (432924264) Text: () Model: (160763239)
38=Index: (137) ChildIndex: (38) Widget: (432924204) Text: () Model: (160763239)
39=Index: (137) ChildIndex: (39) Widget: (432924176) Text: () Model: (160763239)
40=Index: (137) ChildIndex: (40) Widget: (432924148) Text: () Model: (160763239)
41=Index: (137) ChildIndex: (41) Widget: (432924140) Text: () Model: (160763239)
42=Index: (137) ChildIndex: (42) Widget: (432924124) Text: () Model: (160763239)
43=Index: (137) ChildIndex: (43) Widget: (432924116) Text: () Model: (160763239)
44=Index: (137) ChildIndex: (44) Widget: (432924108) Text: () Model: (160763239)
45=Index: (137) ChildIndex: (45) Widget: (432924092) Text: () Model: (160763239)
46=Index: (137) ChildIndex: (46) Widget: (432924052) Text: () Model: (160763239)
47=Index: (137) ChildIndex: (47) Widget: (432924044) Text: () Model: (160763239)
48=Index: (137) ChildIndex: (48) Widget: (432924028) Text: () Model: (160763239)
49=Index: (137) ChildIndex: (49) Widget: (432924020) Text: () Model: (160763239)
50=Index: (137) ChildIndex: (50) Widget: (432924012) Text: () Model: (160763239)
[149]
0=Index: (149) ChildIndex: (0) Widget: (432923888) Text: () Model: (160763239)
[182]
0=Index: (182) ChildIndex: (0) Widget: (432923524) Text: (When you have finished playing<br>RuneScape, always use the<br>button below to logout safely.) Model: (160763239)
1=Index: (182) ChildIndex: (1) Widget: (432923516) Text: () Model: (160763239)
2=Index: (182) ChildIndex: (2) Widget: (432923508) Text: () Model: (160763239)
3=Index: (182) ChildIndex: (3) Widget: (432923492) Text: () Model: (160763239)
4=Index: (182) ChildIndex: (4) Widget: (432923484) Text: () Model: (160763239)
5=Index: (182) ChildIndex: (5) Widget: (432923476) Text: () Model: (160763239)
6=Index: (182) ChildIndex: (6) Widget: (432923460) Text: (Click here to logout) Model: (160763239)
[192]
0=Index: (192) ChildIndex: (0) Widget: (432923404) Text: () Model: (160763239)
1=Index: (192) ChildIndex: (1) Widget: (432923388) Text: () Model: (160763239)
2=Index: (192) ChildIndex: (2) Widget: (432923380) Text: () Model: (160763239)
3=Index: (192) ChildIndex: (3) Widget: (432923372) Text: () Model: (160763239)
4=Index: (192) ChildIndex: (4) Widget: (432923356) Text: () Model: (160763239)
5=Index: (192) ChildIndex: (5) Widget: (432923348) Text: () Model: (160763239)
6=Index: (192) ChildIndex: (6) Widget: (432923340) Text: () Model: (160763239)
7=Index: (192) ChildIndex: (7) Widget: (432923332) Text: () Model: (160763239)
8=Index: (192) ChildIndex: (8) Widget: (432923324) Text: () Model: (160763239)
9=Index: (192) ChildIndex: (9) Widget: (432923316) Text: () Model: (160763239)
10=Index: (192) ChildIndex: (10) Widget: (432923308) Text: () Model: (160763239)
11=Index: (192) ChildIndex: (11) Widget: (432923300) Text: () Model: (160763239)
12=Index: (192) ChildIndex: (12) Widget: (432922772) Text: () Model: (160763239)
13=Index: (192) ChildIndex: (13) Widget: (432922764) Text: () Model: (160763239)
14=Index: (192) ChildIndex: (14) Widget: (432922748) Text: () Model: (160763239)
15=Index: (192) ChildIndex: (15) Widget: (432922740) Text: () Model: (160763239)
16=Index: (192) ChildIndex: (16) Widget: (432922732) Text: () Model: (160763239)
17=Index: (192) ChildIndex: (17) Widget: (432922724) Text: () Model: (160763239)
18=Index: (192) ChildIndex: (18) Widget: (432922708) Text: () Model: (160763239)
19=Index: (192) ChildIndex: (19) Widget: (432922700) Text: () Model: (160763239)
20=Index: (192) ChildIndex: (20) Widget: (432922692) Text: () Model: (160763239)
21=Index: (192) ChildIndex: (21) Widget: (432922676) Text: () Model: (160763239)
22=Index: (192) ChildIndex: (22) Widget: (432922668) Text: () Model: (160763239)
23=Index: (192) ChildIndex: (23) Widget: (432922660) Text: () Model: (160763239)
24=Index: (192) ChildIndex: (24) Widget: (432921812) Text: () Model: (160763239)
25=Index: (192) ChildIndex: (25) Widget: (432921804) Text: () Model: (160763239)
26=Index: (192) ChildIndex: (26) Widget: (432921788) Text: () Model: (160763239)
27=Index: (192) ChildIndex: (27) Widget: (432921780) Text: () Model: (160763239)
28=Index: (192) ChildIndex: (28) Widget: (432921764) Text: () Model: (160763239)
29=Index: (192) ChildIndex: (29) Widget: (432921756) Text: () Model: (160763239)
30=Index: (192) ChildIndex: (30) Widget: (432921748) Text: () Model: (160763239)
31=Index: (192) ChildIndex: (31) Widget: (432921740) Text: () Model: (160763239)
32=Index: (192) ChildIndex: (32) Widget: (432921724) Text: () Model: (160763239)
33=Index: (192) ChildIndex: (33) Widget: (432921708) Text: () Model: (160763239)
34=Index: (192) ChildIndex: (34) Widget: (432921700) Text: () Model: (160763239)
35=Index: (192) ChildIndex: (35) Widget: (432921692) Text: () Model: (160763239)
36=Index: (192) ChildIndex: (36) Widget: (432921652) Text: () Model: (160763239)
37=Index: (192) ChildIndex: (37) Widget: (432921644) Text: () Model: (160763239)
38=Index: (192) ChildIndex: (38) Widget: (432921636) Text: () Model: (160763239)
39=Index: (192) ChildIndex: (39) Widget: (432921628) Text: () Model: (160763239)
40=Index: (192) ChildIndex: (40) Widget: (432921620) Text: () Model: (160763239)
41=Index: (192) ChildIndex: (41) Widget: (432921604) Text: () Model: (160763239)
42=Index: (192) ChildIndex: (42) Widget: (432921596) Text: () Model: (160763239)
43=Index: (192) ChildIndex: (43) Widget: (432921588) Text: () Model: (160763239)
44=Index: (192) ChildIndex: (44) Widget: (432921572) Text: () Model: (160763239)
45=Index: (192) ChildIndex: (45) Widget: (432921564) Text: () Model: (160763239)
46=Index: (192) ChildIndex: (46) Widget: (432921556) Text: () Model: (160763239)
47=Index: (192) ChildIndex: (47) Widget: (432921540) Text: () Model: (160763239)
48=Index: (192) ChildIndex: (48) Widget: (432921532) Text: () Model: (160763239)
49=Index: (192) ChildIndex: (49) Widget: (432922612) Text: () Model: (160763239)
50=Index: (192) ChildIndex: (50) Widget: (432922596) Text: () Model: (160763239)
[239]
0=Index: (239) ChildIndex: (0) Widget: (432922496) Text: () Model: (160763239)
1=Index: (239) ChildIndex: (1) Widget: (432921488) Text: () Model: (160763239)
2=Index: (239) ChildIndex: (2) Widget: (432921464) Text: (Click the tune to play.) Model: (160763239)
3=Index: (239) ChildIndex: (3) Widget: (432921448) Text: (Green=Unlocked) Model: (160763239)
4=Index: (239) ChildIndex: (4) Widget: (432921416) Text: () Model: (160763239)
5=Index: (239) ChildIndex: (5) Widget: (432921404) Text: (Fishing) Model: (160763239)
6=Index: (239) ChildIndex: (6) Widget: (432921392) Text: (Playing:) Model: (160763239)
7=Index: (239) ChildIndex: (7) Widget: (432921332) Text: () Model: (160763239)
8=Index: (239) ChildIndex: (8) Widget: (432921320) Text: (AUTO) Model: (160763239)
9=Index: (239) ChildIndex: (9) Widget: (432921296) Text: () Model: (160763239)
10=Index: (239) ChildIndex: (10) Widget: (432921288) Text: (MAN) Model: (160763239)
11=Index: (239) ChildIndex: (11) Widget: (432921276) Text: () Model: (160763239)
12=Index: (239) ChildIndex: (12) Widget: (432921256) Text: (LOOP) Model: (160763239)
[261]
0=Index: (261) ChildIndex: (0) Widget: (432922116) Text: () Model: (160763239)
1=Index: (261) ChildIndex: (1) Widget: (432922104) Text: () Model: (160763239)
2=Index: (261) ChildIndex: (2) Widget: (432922088) Text: () Model: (160763239)
3=Index: (261) ChildIndex: (3) Widget: (432922072) Text: () Model: (160763239)
4=Index: (261) ChildIndex: (4) Widget: (432922048) Text: () Model: (160763239)
5=Index: (261) ChildIndex: (5) Widget: (432922032) Text: () Model: (160763239)
6=Index: (261) ChildIndex: (6) Widget: (430865264) Text: () Model: (160763239)
7=Index: (261) ChildIndex: (7) Widget: (430865248) Text: () Model: (160763239)
8=Index: (261) ChildIndex: (8) Widget: (430865232) Text: () Model: (160763239)
9=Index: (261) ChildIndex: (9) Widget: (430865200) Text: () Model: (160763239)
10=Index: (261) ChildIndex: (10) Widget: (430865192) Text: () Model: (160763239)
11=Index: (261) ChildIndex: (11) Widget: (430865176) Text: () Model: (160763239)
12=Index: (261) ChildIndex: (12) Widget: (430865160) Text: () Model: (160763239)
13=Index: (261) ChildIndex: (13) Widget: (432921168) Text: () Model: (160763239)
14=Index: (261) ChildIndex: (14) Widget: (432921152) Text: () Model: (160763239)
15=Index: (261) ChildIndex: (15) Widget: (432921140) Text: () Model: (160763239)
16=Index: (261) ChildIndex: (16) Widget: (432921128) Text: () Model: (160763239)
17=Index: (261) ChildIndex: (17) Widget: (432921104) Text: () Model: (160763239)
18=Index: (261) ChildIndex: (18) Widget: (432921088) Text: () Model: (160763239)
19=Index: (261) ChildIndex: (19) Widget: (432921064) Text: () Model: (160763239)
20=Index: (261) ChildIndex: (20) Widget: (432921048) Text: () Model: (160763239)
21=Index: (261) ChildIndex: (21) Widget: (432921008) Text: () Model: (160763239)
22=Index: (261) ChildIndex: (22) Widget: (432920976) Text: () Model: (160763239)
23=Index: (261) ChildIndex: (23) Widget: (432920968) Text: () Model: (160763239)
24=Index: (261) ChildIndex: (24) Widget: (432920944) Text: () Model: (160763239)
25=Index: (261) ChildIndex: (25) Widget: (432920928) Text: () Model: (160763239)
26=Index: (261) ChildIndex: (26) Widget: (432920900) Text: () Model: (160763239)
27=Index: (261) ChildIndex: (27) Widget: (432920888) Text: () Model: (160763239)
28=Index: (261) ChildIndex: (28) Widget: (432920840) Text: () Model: (160763239)
29=Index: (261) ChildIndex: (29) Widget: (432920816) Text: () Model: (160763239)
30=Index: (261) ChildIndex: (30) Widget: (432920800) Text: () Model: (160763239)
31=Index: (261) ChildIndex: (31) Widget: (432920792) Text: () Model: (160763239)
32=Index: (261) ChildIndex: (32) Widget: (432920764) Text: () Model: (160763239)
33=Index: (261) ChildIndex: (33) Widget: (432920756) Text: () Model: (160763239)
34=Index: (261) ChildIndex: (34) Widget: (432920740) Text: () Model: (160763239)
35=Index: (261) ChildIndex: (35) Widget: (432920732) Text: () Model: (160763239)
36=Index: (261) ChildIndex: (36) Widget: (432920684) Text: () Model: (160763239)
37=Index: (261) ChildIndex: (37) Widget: (432920676) Text: () Model: (160763239)
38=Index: (261) ChildIndex: (38) Widget: (432920668) Text: () Model: (160763239)
39=Index: (261) ChildIndex: (39) Widget: (432920660) Text: () Model: (160763239)
40=Index: (261) ChildIndex: (40) Widget: (432920640) Text: () Model: (160763239)
41=Index: (261) ChildIndex: (41) Widget: (432920632) Text: () Model: (160763239)
42=Index: (261) ChildIndex: (42) Widget: (432920608) Text: () Model: (160763239)
43=Index: (261) ChildIndex: (43) Widget: (432920592) Text: () Model: (160763239)
44=Index: (261) ChildIndex: (44) Widget: (432920584) Text: () Model: (160763239)
45=Index: (261) ChildIndex: (45) Widget: (432920528) Text: () Model: (160763239)
46=Index: (261) ChildIndex: (46) Widget: (432920512) Text: (Attack option priority:) Model: (160763239)
47=Index: (261) ChildIndex: (47) Widget: (432920504) Text: () Model: (160763239)
48=Index: (261) ChildIndex: (48) Widget: (432920476) Text: () Model: (160763239)
49=Index: (261) ChildIndex: (49) Widget: (432920464) Text: () Model: (160763239)
50=Index: (261) ChildIndex: (50) Widget: (432920456) Text: () Model: (160763239)
[271]
0=Index: (271) ChildIndex: (0) Widget: (432920432) Text: () Model: (160763239)
1=Index: (271) ChildIndex: (1) Widget: (432920416) Text: () Model: (160763239)
2=Index: (271) ChildIndex: (2) Widget: (432920360) Text: (52 / 52) Model: (160763239)
3=Index: (271) ChildIndex: (3) Widget: (432920352) Text: () Model: (160763239)
4=Index: (271) ChildIndex: (4) Widget: (432920336) Text: () Model: (160763239)
5=Index: (271) ChildIndex: (5) Widget: (432920312) Text: () Model: (160763239)
6=Index: (271) ChildIndex: (6) Widget: (432920300) Text: () Model: (160763239)
7=Index: (271) ChildIndex: (7) Widget: (432920288) Text: () Model: (160763239)
8=Index: (271) ChildIndex: (8) Widget: (432920276) Text: () Model: (160763239)
9=Index: (271) ChildIndex: (9) Widget: (432920264) Text: () Model: (160763239)
10=Index: (271) ChildIndex: (10) Widget: (432920256) Text: () Model: (160763239)
11=Index: (271) ChildIndex: (11) Widget: (432920200) Text: () Model: (160763239)
12=Index: (271) ChildIndex: (12) Widget: (432920184) Text: () Model: (160763239)
13=Index: (271) ChildIndex: (13) Widget: (432920176) Text: () Model: (160763239)
14=Index: (271) ChildIndex: (14) Widget: (432920152) Text: () Model: (160763239)
15=Index: (271) ChildIndex: (15) Widget: (432920140) Text: () Model: (160763239)
16=Index: (271) ChildIndex: (16) Widget: (432920116) Text: () Model: (160763239)
17=Index: (271) ChildIndex: (17) Widget: (432920104) Text: () Model: (160763239)
18=Index: (271) ChildIndex: (18) Widget: (432920092) Text: () Model: (160763239)
19=Index: (271) ChildIndex: (19) Widget: (432920048) Text: () Model: (160763239)
20=Index: (271) ChildIndex: (20) Widget: (432920036) Text: () Model: (160763239)
21=Index: (271) ChildIndex: (21) Widget: (432920012) Text: () Model: (160763239)
22=Index: (271) ChildIndex: (22) Widget: (432920000) Text: () Model: (160763239)
23=Index: (271) ChildIndex: (23) Widget: (432919988) Text: () Model: (160763239)
24=Index: (271) ChildIndex: (24) Widget: (432919976) Text: () Model: (160763239)
25=Index: (271) ChildIndex: (25) Widget: (432919964) Text: () Model: (160763239)
26=Index: (271) ChildIndex: (26) Widget: (432919940) Text: () Model: (160763239)
27=Index: (271) ChildIndex: (27) Widget: (432919928) Text: () Model: (160763239)
28=Index: (271) ChildIndex: (28) Widget: (432919852) Text: () Model: (160763239)
29=Index: (271) ChildIndex: (29) Widget: (432919840) Text: () Model: (160763239)
30=Index: (271) ChildIndex: (30) Widget: (432919816) Text: () Model: (160763239)
[274]
0=Index: (274) ChildIndex: (0) Widget: (432919792) Text: () Model: (160763239)
1=Index: (274) ChildIndex: (1) Widget: (432919780) Text: () Model: (160763239)
2=Index: (274) ChildIndex: (2) Widget: (432919768) Text: () Model: (160763239)
3=Index: (274) ChildIndex: (3) Widget: (432919752) Text: () Model: (160763239)
4=Index: (274) ChildIndex: (4) Widget: (432919696) Text: () Model: (160763239)
5=Index: (274) ChildIndex: (5) Widget: (432919688) Text: () Model: (160763239)
6=Index: (274) ChildIndex: (6) Widget: (432919672) Text: () Model: (160763239)
7=Index: (274) ChildIndex: (7) Widget: (432919648) Text: () Model: (160763239)
8=Index: (274) ChildIndex: (8) Widget: (432919640) Text: () Model: (160763239)
9=Index: (274) ChildIndex: (9) Widget: (432919628) Text: () Model: (160763239)
10=Index: (274) ChildIndex: (10) Widget: (432919620) Text: (Quest Points: 0) Model: (160763239)
11=Index: (274) ChildIndex: (11) Widget: (432919600) Text: () Model: (160763239)
12=Index: (274) ChildIndex: (12) Widget: (432919584) Text: () Model: (160763239)
13=Index: (274) ChildIndex: (13) Widget: (432919528) Text: () Model: (160763239)
14=Index: (274) ChildIndex: (14) Widget: (432919516) Text: (Free Quests) Model: (160763239)
15=Index: (274) ChildIndex: (15) Widget: (432919504) Text: (Black Knights' Fortress) Model: (160763239)
16=Index: (274) ChildIndex: (16) Widget: (432919492) Text: (Cook's Assistant) Model: (160763239)
17=Index: (274) ChildIndex: (17) Widget: (432919464) Text: (Demon Slayer) Model: (160763239)
18=Index: (274) ChildIndex: (18) Widget: (432919452) Text: (Doric's Quest) Model: (160763239)
19=Index: (274) ChildIndex: (19) Widget: (432919440) Text: (Dragon Slayer) Model: (160763239)
20=Index: (274) ChildIndex: (20) Widget: (432919416) Text: (Ernest the Chicken) Model: (160763239)
21=Index: (274) ChildIndex: (21) Widget: (432919372) Text: (Goblin Diplomacy) Model: (160763239)
22=Index: (274) ChildIndex: (22) Widget: (432919360) Text: (Imp Catcher) Model: (160763239)
23=Index: (274) ChildIndex: (23) Widget: (432919336) Text: (The Knight's Sword) Model: (160763239)
24=Index: (274) ChildIndex: (24) Widget: (432919320) Text: (Pirate's Treasure) Model: (160763239)
25=Index: (274) ChildIndex: (25) Widget: (432919312) Text: (Prince Ali Rescue) Model: (160763239)
26=Index: (274) ChildIndex: (26) Widget: (432919284) Text: (The Restless Ghost) Model: (160763239)
27=Index: (274) ChildIndex: (27) Widget: (432919272) Text: (Romeo & Juliet) Model: (160763239)
28=Index: (274) ChildIndex: (28) Widget: (432919256) Text: (Rune Mysteries) Model: (160763239)
29=Index: (274) ChildIndex: (29) Widget: (432919216) Text: (Sheep Shearer) Model: (160763239)
30=Index: (274) ChildIndex: (30) Widget: (432919200) Text: (Shield of Arrav) Model: (160763239)
31=Index: (274) ChildIndex: (31) Widget: (432919176) Text: (Vampire Slayer) Model: (160763239)
32=Index: (274) ChildIndex: (32) Widget: (432919152) Text: (Witch's Potion) Model: (160763239)
33=Index: (274) ChildIndex: (33) Widget: (432919144) Text: (Members' Quests) Model: (160763239)
34=Index: (274) ChildIndex: (34) Widget: (432919128) Text: (Animal Magnetism) Model: (160763239)
35=Index: (274) ChildIndex: (35) Widget: (432919116) Text: (Between a Rock...) Model: (160763239)
36=Index: (274) ChildIndex: (36) Widget: (432919104) Text: (Big Chompy Bird Hunting) Model: (160763239)
37=Index: (274) ChildIndex: (37) Widget: (432919056) Text: (Biohazard) Model: (160763239)
38=Index: (274) ChildIndex: (38) Widget: (432919044) Text: (Cabin Fever) Model: (160763239)
39=Index: (274) ChildIndex: (39) Widget: (432919032) Text: (Clock Tower) Model: (160763239)
40=Index: (274) ChildIndex: (40) Widget: (432919020) Text: (Contact!) Model: (160763239)
41=Index: (274) ChildIndex: (41) Widget: (432919008) Text: (Zogre Flesh Eaters) Model: (160763239)
42=Index: (274) ChildIndex: (42) Widget: (432918992) Text: (Creature of Fenkenstrain) Model: (160763239)
43=Index: (274) ChildIndex: (43) Widget: (432918984) Text: (Darkness of Hallowvale) Model: (160763239)
44=Index: (274) ChildIndex: (44) Widget: (432918968) Text: (Death to the Dorgeshuun) Model: (160763239)
45=Index: (274) ChildIndex: (45) Widget: (432918960) Text: (Death Plateau) Model: (160763239)
46=Index: (274) ChildIndex: (46) Widget: (432918944) Text: (Desert Treasure) Model: (160763239)
47=Index: (274) ChildIndex: (47) Widget: (432918900) Text: (Devious Minds) Model: (160763239)
48=Index: (274) ChildIndex: (48) Widget: (432918888) Text: (The Digsite) Model: (160763239)
49=Index: (274) ChildIndex: (49) Widget: (432918876) Text: (Druidic Ritual) Model: (160763239)
50=Index: (274) ChildIndex: (50) Widget: (432918864) Text: (Dwarf Cannon) Model: (160763239)
[320]
0=Index: (320) ChildIndex: (0) Widget: (432918836) Text: () Model: (160763239)
1=Index: (320) ChildIndex: (1) Widget: (432918824) Text: () Model: (160763239)
2=Index: (320) ChildIndex: (2) Widget: (432918808) Text: () Model: (160763239)
3=Index: (320) ChildIndex: (3) Widget: (432918796) Text: () Model: (160763239)
4=Index: (320) ChildIndex: (4) Widget: (432918784) Text: () Model: (160763239)
5=Index: (320) ChildIndex: (5) Widget: (432918740) Text: () Model: (160763239)
6=Index: (320) ChildIndex: (6) Widget: (432918728) Text: () Model: (160763239)
7=Index: (320) ChildIndex: (7) Widget: (432918712) Text: () Model: (160763239)
8=Index: (320) ChildIndex: (8) Widget: (432918704) Text: () Model: (160763239)
9=Index: (320) ChildIndex: (9) Widget: (432918688) Text: () Model: (160763239)
10=Index: (320) ChildIndex: (10) Widget: (432918676) Text: () Model: (160763239)
11=Index: (320) ChildIndex: (11) Widget: (432918664) Text: () Model: (160763239)
12=Index: (320) ChildIndex: (12) Widget: (432918648) Text: () Model: (160763239)
13=Index: (320) ChildIndex: (13) Widget: (432918636) Text: () Model: (160763239)
14=Index: (320) ChildIndex: (14) Widget: (432918624) Text: () Model: (160763239)
15=Index: (320) ChildIndex: (15) Widget: (432918576) Text: () Model: (160763239)
16=Index: (320) ChildIndex: (16) Widget: (432918568) Text: () Model: (160763239)
17=Index: (320) ChildIndex: (17) Widget: (432918552) Text: () Model: (160763239)
18=Index: (320) ChildIndex: (18) Widget: (432918536) Text: () Model: (160763239)
19=Index: (320) ChildIndex: (19) Widget: (432918528) Text: () Model: (160763239)
20=Index: (320) ChildIndex: (20) Widget: (432918512) Text: () Model: (160763239)
21=Index: (320) ChildIndex: (21) Widget: (432918500) Text: () Model: (160763239)
22=Index: (320) ChildIndex: (22) Widget: (432918492) Text: () Model: (160763239)
23=Index: (320) ChildIndex: (23) Widget: (432918484) Text: () Model: (160763239)
24=Index: (320) ChildIndex: (24) Widget: (432918476) Text: () Model: (160763239)
25=Index: (320) ChildIndex: (25) Widget: (432918468) Text: () Model: (160763239)
26=Index: (320) ChildIndex: (26) Widget: (432918460) Text: () Model: (160763239)
27=Index: (320) ChildIndex: (27) Widget: (432918408) Text: (Total level:<br>977) Model: (160763239)
28=Index: (320) ChildIndex: (28) Widget: (432918396) Text: () Model: (160763239)
[387]
0=Index: (387) ChildIndex: (0) Widget: (432918200) Text: () Model: (160763239)
1=Index: (387) ChildIndex: (1) Widget: (432918176) Text: () Model: (160763239)
2=Index: (387) ChildIndex: (2) Widget: (432918164) Text: () Model: (160763239)
3=Index: (387) ChildIndex: (3) Widget: (432918136) Text: () Model: (160763239)
4=Index: (387) ChildIndex: (4) Widget: (432918096) Text: () Model: (160763239)
5=Index: (387) ChildIndex: (5) Widget: (432918084) Text: () Model: (160763239)
6=Index: (387) ChildIndex: (6) Widget: (432918068) Text: () Model: (160763239)
7=Index: (387) ChildIndex: (7) Widget: (432918060) Text: () Model: (160763239)
8=Index: (387) ChildIndex: (8) Widget: (432918040) Text: () Model: (160763239)
9=Index: (387) ChildIndex: (9) Widget: (432918032) Text: () Model: (160763239)
10=Index: (387) ChildIndex: (10) Widget: (432918016) Text: () Model: (160763239)
11=Index: (387) ChildIndex: (11) Widget: (432918004) Text: () Model: (160763239)
12=Index: (387) ChildIndex: (12) Widget: (432917996) Text: () Model: (160763239)
13=Index: (387) ChildIndex: (13) Widget: (432917988) Text: () Model: (160763239)
14=Index: (387) ChildIndex: (14) Widget: (432917940) Text: () Model: (160763239)
15=Index: (387) ChildIndex: (15) Widget: (432917928) Text: () Model: (160763239)
16=Index: (387) ChildIndex: (16) Widget: (432917912) Text: () Model: (160763239)
17=Index: (387) ChildIndex: (17) Widget: (432917904) Text: () Model: (160763239)
18=Index: (387) ChildIndex: (18) Widget: (432917884) Text: () Model: (160763239)
19=Index: (387) ChildIndex: (19) Widget: (432917876) Text: () Model: (160763239)
20=Index: (387) ChildIndex: (20) Widget: (432917860) Text: () Model: (160763239)
[464]
0=Index: (464) ChildIndex: (0) Widget: (432917680) Text: () Model: (160763239)
1=Index: (464) ChildIndex: (1) Widget: (432917672) Text: () Model: (160763239)
2=Index: (464) ChildIndex: (2) Widget: (432917664) Text: () Model: (160763239)
3=Index: (464) ChildIndex: (3) Widget: (432917656) Text: () Model: (160763239)
4=Index: (464) ChildIndex: (4) Widget: (432917604) Text: () Model: (160763239)
5=Index: (464) ChildIndex: (5) Widget: (432917596) Text: () Model: (160763239)
6=Index: (464) ChildIndex: (6) Widget: (432917568) Text: () Model: (160763239)
7=Index: (464) ChildIndex: (7) Widget: (432917556) Text: () Model: (160763239)
8=Index: (464) ChildIndex: (8) Widget: (432917540) Text: () Model: (160763239)
9=Index: (464) ChildIndex: (9) Widget: (432917528) Text: () Model: (160763239)
10=Index: (464) ChildIndex: (10) Widget: (432917504) Text: () Model: (160763239)
11=Index: (464) ChildIndex: (11) Widget: (432917456) Text: () Model: (160763239)
12=Index: (464) ChildIndex: (12) Widget: (432917444) Text: () Model: (160763239)
13=Index: (464) ChildIndex: (13) Widget: (432917420) Text: () Model: (160763239)
14=Index: (464) ChildIndex: (14) Widget: (432917408) Text: () Model: (160763239)
15=Index: (464) ChildIndex: (15) Widget: (432917384) Text: () Model: (160763239)
16=Index: (464) ChildIndex: (16) Widget: (432917360) Text: () Model: (160763239)
17=Index: (464) ChildIndex: (17) Widget: (432917348) Text: () Model: (160763239)
18=Index: (464) ChildIndex: (18) Widget: (432917336) Text: () Model: (160763239)
19=Index: (464) ChildIndex: (19) Widget: (432917292) Text: () Model: (160763239)
20=Index: (464) ChildIndex: (20) Widget: (432917276) Text: () Model: (160763239)
21=Index: (464) ChildIndex: (21) Widget: (432917268) Text: () Model: (160763239)
22=Index: (464) ChildIndex: (22) Widget: (432917252) Text: () Model: (160763239)
23=Index: (464) ChildIndex: (23) Widget: (432917236) Text: () Model: (-749994522)
24=Index: (464) ChildIndex: (24) Widget: (432917224) Text: () Model: (-910757761)
25=Index: (464) ChildIndex: (25) Widget: (432917216) Text: () Model: (-106941566)
26=Index: (464) ChildIndex: (26) Widget: (432917188) Text: () Model: (-267704805)
27=Index: (464) ChildIndex: (27) Widget: (432917136) Text: () Model: (-428468044)
28=Index: (464) ChildIndex: (28) Widget: (432917120) Text: () Model: (-589231283)
29=Index: (464) ChildIndex: (29) Widget: (432917096) Text: () Model: (-1232284239)
30=Index: (464) ChildIndex: (30) Widget: (432917084) Text: () Model: (-1393047478)
31=Index: (464) ChildIndex: (31) Widget: (432917056) Text: () Model: (-1553810717)
32=Index: (464) ChildIndex: (32) Widget: (432917044) Text: () Model: (-1714573956)
33=Index: (464) ChildIndex: (33) Widget: (432917032) Text: () Model: (-1875337195)
34=Index: (464) ChildIndex: (34) Widget: (432917016) Text: () Model: (-2036100434)
35=Index: (464) ChildIndex: (35) Widget: (432916976) Text: () Model: (-1071521000)
36=Index: (464) ChildIndex: (36) Widget: (432916952) Text: () Model: (2098103623)
37=Index: (464) ChildIndex: (37) Widget: (432916936) Text: () Model: (1937340384)
38=Index: (464) ChildIndex: (38) Widget: (432916928) Text: (Yes) Model: (160763239)
39=Index: (464) ChildIndex: (39) Widget: (432916904) Text: (No) Model: (160763239)
40=Index: (464) ChildIndex: (40) Widget: (432916880) Text: (Bow) Model: (160763239)
41=Index: (464) ChildIndex: (41) Widget: (432916872) Text: (Angry) Model: (160763239)
42=Index: (464) ChildIndex: (42) Widget: (432916860) Text: (Think) Model: (160763239)
43=Index: (464) ChildIndex: (43) Widget: (432916804) Text: (Wave) Model: (160763239)
44=Index: (464) ChildIndex: (44) Widget: (432916792) Text: (Shrug) Model: (160763239)
45=Index: (464) ChildIndex: (45) Widget: (432916768) Text: (Cheer) Model: (160763239)
46=Index: (464) ChildIndex: (46) Widget: (432916752) Text: (Beckon) Model: (160763239)
47=Index: (464) ChildIndex: (47) Widget: (432916728) Text: (Laugh) Model: (160763239)
48=Index: (464) ChildIndex: (48) Widget: (432916720) Text: (Jump for Joy) Model: (160763239)
49=Index: (464) ChildIndex: (49) Widget: (432916656) Text: (Yawn) Model: (160763239)
50=Index: (464) ChildIndex: (50) Widget: (432916648) Text: (Dance) Model: (160763239)
2014-06-22 17:09:12
2014-06-23 10:07:31
2014-06-23 12:31:32
2014-06-23 14:47:57
2014-06-24 03:04:20
2014-06-24 04:46:57
2014-06-24 13:21:59
2014-06-26 03:46:36
2014-06-26 12:49:23
From: Solar
Think R_ChooseOption might need checking. elfyyy's PC script right clicks but then doesn't select an option.
2014-06-26 14:41:17
2014-06-26 17:27:01
From: Haxz
Sorry if this has been answered, is there a way to manually update the reflection when a OSR update occurs?
2014-06-26 17:58:20
From: arm2
Not without making a updater. If you are interested in making one look on javahacking.
2014-06-26 18:30:16
From: Awkwardsaw
I've really been thinking about doing this. The lack of useful hooks makes reflection really frustrating :(
2014-06-26 20:19:36
2014-06-26 20:43:42
From: masterBB
The problem with writing an hook updater though is the time it takes to create and update it. Is it worth the time?
2014-06-26 22:52:00
2014-06-27 01:24:54
for i:=0 to 99 do
begin
Result[i] := SmartGetFieldArrayint(SmartCurrentTarget, 0, client_npcIndices, i);
end;
Result:= RemoveDeadTIA(Result);
for i:=0 to 99 do
begin
Result[i] := SmartGetFieldArrayint(SmartCurrentTarget, 0, client_npcIndices, i);
if result[ i ] = -1 then // Hack-fix for 6/26/14 OSRS update.
result[ i ] := 0; // To be caught under RemoveDeadTIA.
end;
Result:= RemoveDeadTIA(Result);
2014-06-27 07:01:41
From: Tonekray
R_GetAllNPCs returns a length 0 array time to time. From what it looks like, the first time it is called it works, but the second time it doesn't, and then the third works. It looks like it flips like that.
I assume it's because of the switch to LocalIndex? I don't have the reflection technical know-how to fix, but I'm currently dabbling; I might be able to help.
EDIT:
Looks like for the first call, a -1 gets into the result for R_GetIndices() for this part of the code:for i:=0 to 99 do
begin
Result[i] := SmartGetFieldArrayint(SmartCurrentTarget, 0, client_npcIndices, i);
end;
Result:= RemoveDeadTIA(Result);
Resulting in LocalIndex not being used until the second call, when the -1 doesn't appear anymore. I guess catching the -1 would be a good call? I don't know if that ever appears when NPCIndex is working properly, so it would be a quick bugfix.
Replacing the above with this fixes the issue.
for i:=0 to 99 do
begin
Result[i] := SmartGetFieldArrayint(SmartCurrentTarget, 0, client_npcIndices, i);
if result[ i ] = -1 then // Hack-fix for 6/26/14 OSRS update.
result[ i ] := 0; // To be caught under RemoveDeadTIA.
end;
Result:= RemoveDeadTIA(Result);
for i:=0 to 99 do
begin
Result[i] := SmartGetFieldArrayint(SmartCurrentTarget, 0, client_npcIndices, i);
end;
Result:= RemoveDeadTIA(Result);
if (length(Result) < 1) then
begin //NpcIndex hook is broken, use LocalIndex method I'm having a look at it now to see why it returns an empty array every 2nd use..2014-06-27 07:42:44
2014-06-27 08:31:04
2014-06-27 12:37:14
2014-06-27 17:23:53
2014-06-27 23:20:14
2014-06-27 23:22:15
From: corangerx111
I'm having trouble with a lot of the functions beginning with the one, "R_GetWidget," and multiple ones under that. The full error is "[Error] C:\Simba\Includes\F_AntiRandoms.simba(120:10): Duplicate identifier 'R_GETWIDGET' at line 120"
Next after that is "R_GetWidgetText," full error being "[Error] C:\Simba\Includes\F_AntiRandoms.simba(130:10): Duplicate identifier 'R_GETWIDGETTEXT' at line 130"
I'll list one more - "TInventoryItem," full error being "[Error] C:\Simba\Includes\F_AntiRandoms.simba(855:3): Duplicate identifier 'TInventoryItem' at line 855"
Basically, all the errors I'm having deal with duplicate identifiers.
From: Krazy_Meerkat
Note: If you also use F_Randoms, you will get a duplicate identifier error with some of the functions, just open up Widgets.simba and take all of those functions out of F_Randoms.simba
2014-06-28 01:41:14
2014-06-28 12:14:03
2014-06-28 13:35:36
From: Krazy_Meerkat
Well R_GetObjectsDistance was working for game-objects, but I've fixed the other object hooks (mistake with the hook naming for wall/floor/boundary)..
Latest update:
Replaced BoundaryObject/Wall/Floor Main class hooks with the Tile_Boundary/Wall/Floor Hooks (Array of Boundary/Wall/Floor)
Fixed NpcLevelDef Multiplier.
All Object Functions should be working again.
2014-06-28 17:00:52
2014-06-28 18:04:07
{ 207 Hooks Found By Cheddys Beautiful Updater }
const
ReflectionRevision = '52';
{* BoundaryObject - 9 Hooks *}
BoundaryObject = 'ch';
BoundaryObject_AlternativeOrientation = 'r';
BoundaryObject_AlternativeOrientation_Multiplier = -1409784601;
BoundaryObject_BackupRenderable = 'k';
BoundaryObject_Flags = 'n';
BoundaryObject_Flags_Multiplier = -811434849;
BoundaryObject_Hash = 'b';
BoundaryObject_Hash_Multiplier = -107201215;
BoundaryObject_Orientation = 'z';
BoundaryObject_Orientation_Multiplier = 89571079;
BoundaryObject_Plane = 'j';
BoundaryObject_Plane_Multiplier = -1895237785;
BoundaryObject_Renderable = 'e';
BoundaryObject_Get_X = 'y';
BoundaryObject_Get_X_Multiplier = 1920246735;
BoundaryObject_Get_Y = 'h';
BoundaryObject_Get_Y_Multiplier = 688028895;
{* Cache - 3 Hooks *}
Cache = 'fq';
Cache_CacheableNode = 'j';
Cache_HashTable = 'h';
Cache_Queue = 'r';
{* CacheableNode - 2 Hooks *}
CacheableNode = 'fe';
CacheableNode_Next = 'cd';
CacheableNode_Previous = 'ch';
{* Canvas - 1 Hooks *}
Canvas = 'ds';
Canvas_Component = 'j';
{* Actor - 18 Hooks *}
Actor = 'ag';
Actor_Animation = 'as';
Actor_Animation_Multiplier = 346868905;
Actor_CombatCycle = 'ay';
Actor_CombatCycle_Multiplier = -631709259;
Actor_Health = 'am';
Actor_Health_Multiplier = 1935778589;
Actor_HitCycles = 'aa';
Actor_HitDamages = 'ad';
Actor_HitTypes = 'at';
Actor_Interacting = 'au';
Actor_Interacting_Multiplier = 718341389;
Actor_MaxHealth = 'az';
Actor_MaxHealth_Multiplier = -1034371255;
Actor_Orientation = 'ba';
Actor_Orientation_Multiplier = -866281573;
Actor_ActiveText = 'ag';
Actor_PositionOffset = 'l';
Actor_PositionOffset_Multiplier = -862303680;
Actor_PathLength = 'bu';
Actor_PathLength_Multiplier = -1936525339;
Actor_PathTraversed = 'bc';
Actor_PathX = 'by';
Actor_PathY = 'bn';
Actor_LocalX = 'm';
Actor_LocalX_Multiplier = -1283739801;
Actor_LocalY = 'v';
Actor_LocalY_Multiplier = -1308082377;
Actor_isInSequence = 'p';
{* ClassData - 3 Hooks *}
ClassData = 'gx';
ClassData_Bytes = 'b';
ClassData_Fields = 'r';
ClassData_Methods = 'k';
{* Client - 48 Hooks *}
Client = 'client';
Client_BaseX = 'e.ce';
Client_BaseX_Multiplier = 640915389;
Client_BaseY = 'client.cu';
Client_BaseY_Multiplier = -2112689689;
Client_CameraPitch = 'cw.fi';
Client_CameraPitch_Multiplier = -1301731629;
Client_CameraX = 'dg.fs';
Client_CameraX_Multiplier = -541413329;
Client_CameraY = 'ca.ft';
Client_CameraY_Multiplier = 573960223;
Client_CameraYaw = 'n.fd';
Client_CameraYaw_Multiplier = -1715187017;
Client_CameraZ = 'g.fz';
Client_CameraZ_Multiplier = 1053895939;
Client_CollisionMaps = 'client.w';
Client_Levels = 'client.hn';
Client_Run_Energy = 'client.ji';
Client_Run_Energy_Multiplier = 1630043583;
Client_Experiences = 'client.ha';
Client_LoopCycle = 'client.d';
Client_LoopCycle_Multiplier = 1836037131;
Client_Login_State = 'client.t';
Client_Login_State_Multiplier = -1546172329;
Client_GroundItems = 'client.he';
Client_NPCs = 'client.bc';
Client_Player = 'client.hj';
Client_Players = 'client.gd';
Client_LoginState = 'al.ag';
Client_LoginState_Multiplier = -1436864683;
Client_CompassAngle = 'client.fx';
Client_CompassAngle_Multiplier = -1116838697;
Client_Map_Offset = 'client.df';
Client_Map_Offset_Multiplier = -986795503;
Client_Map_Scale = 'client.dj';
Client_Map_Scale_Multiplier = -1158978579;
Client_Real_Levels = 'client.hx';
Client_MenuActions = 'client.ip';
Client_MenuCount = 'client.ia';
Client_MenuCount_Multiplier = -1031396587;
Client_MenuHeight = 'fz.iv';
Client_MenuHeight_Multiplier = 408425289;
Client_MenuOptions = 'client.is';
Client_MenuWidth = 'af.ir';
Client_MenuWidth_Multiplier = -1702543585;
Client_MenuX = 'co.hs';
Client_MenuX_Multiplier = 1064434231;
Client_MenuY = 'av.hg';
Client_MenuY_Multiplier = 1472619701;
Client_ReflectionMouseX = 'dp.r';
Client_ReflectionMouseX_Multiplier = 2049707531;
Client_ReflectionMouseY = 'dp.e';
Client_ReflectionMouseY_Multiplier = 506036497;
Client_NPCIndices = 'client.bv';
Client_Password = 'al.aq';
Client_Plane = 'cb.hi';
Client_Plane_Multiplier = -1434897979;
Client_Settings = 'ea.z';
Client_Region = 'bb.dr';
Client_GroundHeights = 'e.j';
Client_GroundSettings = 'e.z';
Client_Username = 'al.aw';
Client_Weight = 'client.ja';
Client_Weight_Multiplier = 764550633;
Client_WidgetHeights = 'client.lm';
Client_WidgetNodeTable = 'client.jv';
Client_WidgetPositionsX = 'client.lc';
Client_WidgetPositionsY = 'client.ly';
Client_Widgets = 'em.j';
Client_WidgetSettings = 'ea.y';
Client_WidgetWidths = 'client.la';
Client_isMenuOpen = 'client.hb';
{* CollisionMap - 5 Hooks *}
CollisionMap = 'gn';
CollisionMap_Flags = 'ai';
CollisionMap_Height = 'aj';
CollisionMap_Height_Multiplier = -752880557;
CollisionMap_OffsetX = 'al';
CollisionMap_OffsetX_Multiplier = -2115422721;
CollisionMap_OffsetY = 'af';
CollisionMap_OffsetY_Multiplier = 428578929;
CollisionMap_Width = 'x';
CollisionMap_Width_Multiplier = -843855967;
{* FloorDecorationObject - 6 Hooks *}
FloorDecorationObject = 'co';
FloorDecorationObject_Flags = 'e';
FloorDecorationObject_Flags_Multiplier = 1674008273;
FloorDecorationObject_Hash = 'r';
FloorDecorationObject_Hash_Multiplier = -62010579;
FloorDecorationObject_Plane = 'j';
FloorDecorationObject_Plane_Multiplier = -2029055535;
FloorDecorationObject_Renderable = 'z';
FloorDecorationObject_Get_X = 'y';
FloorDecorationObject_Get_X_Multiplier = 1987689607;
FloorDecorationObject_Get_Y = 'h';
FloorDecorationObject_Get_Y_Multiplier = -344449963;
{* HashTable - 2 Hooks *}
HashTable = 'fo';
HashTable_Nodes = 'z';
HashTable_Size = 'j';
HashTable_Size_Multiplier = 1;
{* Item - 2 Hooks *}
Item = 'w';
Item_ID = 'j';
Item_ID_Multiplier = -1208979173;
Item_StackSize = 'z';
Item_StackSize_Multiplier = 460384345;
{* ItemDefinition - 9 Hooks *}
ItemDefinition = 'au';
ItemDefinition_GroundActions = 'l';
ItemDefinition_ModelColours = 'f';
ItemDefinition_ModelSizeX = 'ay';
ItemDefinition_ModelSizeX_Multiplier = 836976809;
ItemDefinition_ModelSizeY = 'am';
ItemDefinition_ModelSizeY_Multiplier = 1785188107;
ItemDefinition_ModelSizeZ = 'az';
ItemDefinition_ModelSizeZ_Multiplier = 1752736447;
ItemDefinition_Name = 'a';
ItemDefinition_NewModelColours = 'o';
ItemDefinition_InventoryActions = 'w';
ItemDefinition_isMembers = 'p';
{* ItemLayer - 8 Hooks *}
ItemLayer = 'ct';
ItemLayer_BottomRenderable = 'z';
ItemLayer_Height = 'b';
ItemLayer_Height_Multiplier = 1041807905;
ItemLayer_ID = 'k';
ItemLayer_ID_Multiplier = -851268015;
ItemLayer_MiddleRenderable = 'r';
ItemLayer_Plane = 'j';
ItemLayer_Plane_Multiplier = -1875046189;
ItemLayer_TopRenderable = 'e';
ItemLayer_X = 'y';
ItemLayer_X_Multiplier = -1476370387;
ItemLayer_Y = 'h';
ItemLayer_Y_Multiplier = 1489080997;
{* LinkedList - 2 Hooks *}
LinkedList = 'fa';
LinkedList_Head = 'j';
LinkedList_Tail = 'z';
{* Model - 11 Hooks *}
Model = 'cl';
Model_IndicesLength = 'n';
Model_IndicesLength_Multiplier = 1;
Model_IndicesX = 'a';
Model_IndicesY = 'q';
Model_IndicesZ = 'i';
Model_TexturedIndicesX = 'f';
Model_TexturedIndicesY = 'o';
Model_TexturedIndicesZ = 't';
Model_VerticesLength = 'r';
Model_VerticesLength_Multiplier = 1;
Model_VerticesX = 'e';
Model_VerticesY = 'k';
Model_VerticesZ = 'b';
{* ReflectionMouse - 0 Hooks *}
ReflectionMouse = 'dp';
{* Node - 3 Hooks *}
Node = 'gb';
Node_Next = 'ef';
Node_Previous = 'ej';
Node_UID = 'df';
{* NPC - 1 Hooks *}
NPC = 'ai';
NPC_Definition = 'j';
{* NPCDefinition - 4 Hooks *}
NPCDefinition = 'an';
NPCDefinition_Actions = 'v';
NPCDefinition_ID = 'r';
NPCDefinition_ID_Multiplier = -563242523;
NPCDefinition_Level = 'p';
NPCDefinition_Level_Multiplier = -545532659;
NPCDefinition_Name = 'e';
{* ObjectDefinition - 2 Hooks *}
ObjectDefinition = 'av';
ObjectDefinition_Actions = 'af';
ObjectDefinition_Name = 'i';
{* Player - 2 Hooks *}
Player = 'y';
Player_Model = 'f';
Player_Name = 'j';
{* Queue - 1 Hooks *}
Queue = 'fy';
Queue_Head = 'j';
{* Region - 2 Hooks *}
Region = 'cc';
Region_SceneObjects = 'n';
Region_SceneTiles = 'e';
{* Renderable - 1 Hooks *}
Renderable = 'bv';
Renderable_Height = 'cc';
Renderable_Height_Multiplier = -1694915813;
{* WorldObject - 12 Hooks *}
WorldObject = 'cz';
WorldObject_Flags = 'o';
WorldObject_Flags_Multiplier = 2142440351;
WorldObject_Hash = 'f';
WorldObject_Hash_Multiplier = -1448524597;
WorldObject_OffsetX = 'b';
WorldObject_OffsetX_Multiplier = -1773120761;
WorldObject_OffsetY = 'a';
WorldObject_OffsetY_Multiplier = 2041037581;
WorldObject_Orientation = 'e';
WorldObject_Orientation_Multiplier = -940565287;
WorldObject_Plane = 'j';
WorldObject_Plane_Multiplier = -1061781103;
WorldObject_RelativeX = 'k';
WorldObject_RelativeX_Multiplier = -1895767987;
WorldObject_RelativeY = 'n';
WorldObject_RelativeY_Multiplier = -246789625;
WorldObject_Renderable = 'z';
WorldObject_Get_X = 'h';
WorldObject_Get_X_Multiplier = -1521310019;
WorldObject_Get_Y = 'r';
WorldObject_Get_Y_Multiplier = 1563783995;
WorldObject_Height = 'y';
WorldObject_Height_Multiplier = -1852292595;
{* Stream - 2 Hooks *}
Stream = 'de';
Stream_Offset = 'z';
Stream_Offset_Multiplier = -326030699;
Stream_Payload = 'j';
{* StringStorage - 0 Hooks *}
StringStorage = 'eq';
{* SceneTile - 8 Hooks *}
SceneTile = 'ca';
SceneTile_BoundaryObject = 'k';
SceneTile_FloorDecorationObject = 'n';
SceneTile_ItemLayer = 'a';
SceneTile_Plane = 'z';
SceneTile_Plane_Multiplier = -811609317;
SceneTile_WorldObjects = 'i';
SceneTile_WallObject = 'b';
SceneTile_X = 'y';
SceneTile_X_Multiplier = -52645999;
SceneTile_Y = 'h';
SceneTile_Y_Multiplier = -1881681223;
{* WallObject - 11 Hooks *}
WallObject = 'cb';
WallObject_BackupRenderable = 'n';
WallObject_Flags = 'q';
WallObject_Flags_Multiplier = -2025564059;
WallObject_Height = 'r';
WallObject_Height_Multiplier = 314372237;
WallObject_Hash = 'a';
WallObject_Hash_Multiplier = -2032013177;
WallObject_Orientation = 'z';
WallObject_Orientation_Multiplier = -1962180045;
WallObject_Plane = 'j';
WallObject_Plane_Multiplier = 1322146753;
WallObject_RelativeX = 'e';
WallObject_RelativeX_Multiplier = -1087159463;
WallObject_RelativeY = 'k';
WallObject_RelativeY_Multiplier = 1972772869;
WallObject_Renderable = 'b';
WallObject_X = 'y';
WallObject_X_Multiplier = 1067256453;
WallObject_Y = 'h';
WallObject_Y_Multiplier = 918945475;
{* Widget - 28 Hooks *}
Widget = 'em';
Widget_Actions = 'bu';
Widget_ActionType = 'ar';
Widget_ActionType_Multiplier = -2114217435;
Widget_BorderThickness = 'at';
Widget_BorderThickness_Multiplier = 1508056151;
Widget_BoundsIndex = 'dp';
Widget_BoundsIndex_Multiplier = 1967481091;
Widget_Children = 'dm';
Widget_GetItems = 'dl';
Widget_Height = 'u';
Widget_Height_Multiplier = 1561540347;
Widget_GetID = 'f';
Widget_GetID_Multiplier = 1835939729;
Widget_Index = 'o';
Widget_Index_Multiplier = 944922441;
Widget_ItemID = 'dc';
Widget_ItemID_Multiplier = -1973759017;
Widget_ItemStack = 'da';
Widget_ItemStack_Multiplier = -1319886779;
Widget_Name = 'dd';
Widget_Opcodes = 'dk';
Widget_Parent = 'by';
Widget_ParentID = 'p';
Widget_ParentID_Multiplier = 1754166169;
Widget_RelativeX = 'y';
Widget_RelativeX_Multiplier = 2129553153;
Widget_RelativeY = 'm';
Widget_RelativeY_Multiplier = 786087633;
Widget_ScrollX = 'w';
Widget_ScrollX_Multiplier = -405712701;
Widget_ScrollY = 'x';
Widget_ScrollY_Multiplier = -1401783281;
Widget_SpritesX = 'bw';
Widget_SpritesY = 'bo';
Widget_GetStackSizes = 'dr';
Widget_Text = 'bf';
Widget_Type = 'at';
Widget_Type_Multiplier = 1508056151;
Widget_Width = 'v';
Widget_Width_Multiplier = 1887184409;
Widget_X = 'g';
Widget_X_Multiplier = 1271518477;
Widget_Y = 's';
Widget_Y_Multiplier = -1124070965;
Widget_isHidden = 'l';
{* WidgetNode - 1 Hooks *}
WidgetNode = 'h';
WidgetNode_ID = 'j';
WidgetNode_ID_Multiplier = 393106341;
package com.cheddy.bot.api;
import java.awt.Point;
import java.util.ArrayList;
import java.util.Collections;
public class AStar {
static final int BLOCKED = 1;
static final int NON_WALKABLE = 256;
static final int BLOCKED_WEST = 128;
static final int BLOCKED_EAST = 8;
static final int BLOCKED_NORTH = 2;
static final int BLOCKED_SOUTH = 32;
public static Path generatePath(Client client, Point finish, boolean finishOnPoint) throws TileUnreacheableException{
return new Path(client, generateShortestPath(client, client.getMyPlayer().getPosition().get2DLocalCoord(), new Point(finish.x - client.getBaseX(), finish.y - client.getBaseY()) , finishOnPoint));
}
public static int getFlags(Client client, Point position){
int[][] map = client.getLocalFlags();
if(map == null){
return -1;
}
if(position.x > map.length|| position.y > map[0].length){
return -1;
}
return map[position.x][position.y];
}
private static Point[] generateShortestPath(Client client, Point start, Point finish, boolean finishOnPoint) throws TileUnreacheableException{
int[][] map = client.getLocalFlags();
if(map == null){
return null;
}
if(start.x > map.length || finish.x > map.length || start.y > map[0].length || finish.y > map[0].length || start.x < 0 || start.y < 0 || finish.x < 0 || finish.y < 0){
return null;
}
if(!isWalkable(map[finish.x][finish.y]) && finishOnPoint){
System.out.println("Destination is unwalkable");
return null;
}
ArrayList<AStarNode> openList = new ArrayList<AStarNode>();
ArrayList<AStarNode> closedList = new ArrayList<AStarNode>();
for(int i = 0; i < map.length; i++){
for(int i1 = 0; i1 < map.length; i1++){
if(!isWalkable(map[i][i1])){
AStarNode n = new AStarNode(null, i, i1, map[i][i1], finish, map, finishOnPoint);
closedList.add(n);
}
}
}
openList.add(new AStarNode(null, start.x, start.y, map[start.x][start.y], finish, map, finishOnPoint));
while (openList.size() > 0){
Collections.sort(openList);
AStarNode current = openList.get(0);
if(current.x == finish.x && current.y == finish.y
|| (current.x + 1 == finish.x && current.y == finish.y && !finishOnPoint)
|| (current.x - 1 == finish.x && current.y == finish.y && !finishOnPoint)
|| (current.x == finish.x && current.y + 1 == finish.y && !finishOnPoint)
|| (current.x == finish.x && current.y - 1 == finish.y && !finishOnPoint)){
return retracePath(client, current);
}
openList = current.getNeighbours(openList, closedList);
openList.remove(current);
closedList.add(current);
}
System.out.println("No Path!");
throw new TileUnreacheableException();
}
private static Point[] retracePath(Client client,AStarNode current) {
int baseX = client.getBaseX();
int baseY = client.getBaseY();
ArrayList<Point> points = new ArrayList<Point>();
points.add(new Point(current.x + baseX, current.y + baseY));
while(current.parent != null){
current = current.parent;
points.add(new Point(current.x + baseX, current.y + baseY));
}
Point[] p = new Point[points.size()];
p = points.toArray(p);
return p;
}
@SuppressWarnings("unused")
private static Point[] reverseArray(Point[] arr){
if(arr == null){
return null;
}
for(int i = 0; i < arr.length / 2; i++)
{
Point temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
return arr;
}
public static boolean isWalkable(int flag){
return (flag & (NON_WALKABLE)) == 0;
}
public static boolean isNotBlockedNorth(int flag, int flag2){
if(!isWalkable(flag2)){
return false;
}
return (flag & BLOCKED_NORTH) == 0;
}
public static boolean isNotBlockedWest(int flag, int flag2){
if(!isWalkable(flag2)){
return false;
}
return (flag & BLOCKED_WEST) == 0;
}
public static boolean isNotBlockedEast(int flag, int flag2){
if(!isWalkable(flag2)){
return false;
}
return (flag & BLOCKED_EAST) == 0;
}
public static boolean isNotBlockedSouth(int flag, int flag2){
if(!isWalkable(flag2)){
return false;
}
return (flag & BLOCKED_SOUTH) == 0;
}
public static boolean isNotBlockedSouthWest(int northeast, int northwest, int southeast, int southwest){
return ((southwest & (NON_WALKABLE | BLOCKED)) == 0) && ((northeast & (NON_WALKABLE | BLOCKED | BLOCKED_WEST)) == 0) && ((northeast & (NON_WALKABLE | BLOCKED | BLOCKED_SOUTH)) == 0) && ((northwest & (NON_WALKABLE | BLOCKED | BLOCKED_SOUTH)) == 0) && ((southeast & (NON_WALKABLE | BLOCKED | BLOCKED_WEST)) == 0);
}
public static boolean isNotBlockedSouthEast(int northwest, int northeast, int southwest, int southeast){
return ((southeast & (NON_WALKABLE | BLOCKED)) == 0) && ((northwest & (NON_WALKABLE | BLOCKED | BLOCKED_EAST)) == 0) && ((northwest & (NON_WALKABLE | BLOCKED | BLOCKED_SOUTH)) == 0) && ((northeast & (NON_WALKABLE | BLOCKED | BLOCKED_SOUTH)) == 0) && ((southwest & (NON_WALKABLE | BLOCKED | BLOCKED_EAST)) == 0);
}
public static boolean isNotBlockedNorthEast(int southwest, int southeast, int northwest, int northeast){
return ((northeast & (NON_WALKABLE | BLOCKED)) == 0) && ((southwest & (NON_WALKABLE | BLOCKED | BLOCKED_EAST)) == 0) && ((southwest & (NON_WALKABLE | BLOCKED | BLOCKED_NORTH)) == 0) && ((southeast & (NON_WALKABLE | BLOCKED | BLOCKED_NORTH)) == 0) && ((northwest & (NON_WALKABLE | BLOCKED | BLOCKED_EAST)) == 0);
}
public static boolean isNotBlockedNorthWest(int southeast, int southwest, int northeast, int northwest){
return ((northwest & (NON_WALKABLE | BLOCKED)) == 0) && ((southeast & (NON_WALKABLE | BLOCKED | BLOCKED_WEST)) == 0) && ((southeast & (NON_WALKABLE | BLOCKED | BLOCKED_NORTH)) == 0) && ((southwest & (NON_WALKABLE | BLOCKED | BLOCKED_NORTH)) == 0) && ((northeast & (NON_WALKABLE | BLOCKED | BLOCKED_WEST)) == 0);
}
}
package com.cheddy.bot.api;
import java.awt.Point;
import java.util.ArrayList;
public class AStarNode implements Comparable<AStarNode>{
int f,g,h,x,y,flags;
AStarNode parent;
Point finish;
int[][] map;
boolean fop;
public AStarNode(AStarNode parent, int x, int y, int flags, Point finish, int[][] map, boolean finishOnPoint) {
this.parent = parent;
this.x = x;
this.y = y;
this.flags = flags;
if(parent != null){
if(parent.x != x && parent.y != y){
this.g = parent.g + 14;
}else{
this.g = parent.g + 10;
}
}else{
this.g = 0;
}
this.h = (Math.abs(x - finish.x) + Math.abs(y - finish.y));
this.f = h + g;
this.finish = finish;
this.map = map;
this.flags = map[x][y];
this.fop = finishOnPoint;
}
@Override
public int compareTo(AStarNode o) {
return this.f - o.f;
}
public final ArrayList<AStarNode> getNeighbours(final ArrayList<AStarNode> arrayOpen, final ArrayList<AStarNode> arrayClosed){
if(x - 1 > -1){
if(AStar.isNotBlockedWest(flags, map[x - 1][y])){
AStarNode n = new AStarNode(this, x - 1, y, map[x - 1][y], finish, map, fop);
if(listNotContain(n, arrayOpen, arrayClosed)){
arrayOpen.add(n);
}
}
}
if(x + 1 < map.length){
if(AStar.isNotBlockedEast(flags, map[x + 1][y])){
AStarNode n = new AStarNode(this, x + 1, y, map[x + 1][y], finish, map, fop);
if(listNotContain(n, arrayOpen, arrayClosed)){
arrayOpen.add(n);
}
}
}
if(y - 1 > -1){
if(AStar.isNotBlockedSouth(flags, map[x][y - 1])){
AStarNode n = new AStarNode(this, x, y - 1, map[x][y - 1], finish, map, fop);
if(listNotContain(n, arrayOpen, arrayClosed)){
arrayOpen.add(n);
}
}
}
if(y + 1 < map[x].length){
if(AStar.isNotBlockedNorth(flags, map[x][y + 1])){
AStarNode n = new AStarNode(this, x, y + 1, map[x][y + 1], finish, map, fop);
if(listNotContain(n, arrayOpen, arrayClosed)){
arrayOpen.add(n);
}
}
}
//////
if(x - 1 > -1 && y - 1 > -1){
AStarNode n;
if(AStar.isNotBlockedSouth(flags, map[x][y - 1]) && AStar.isNotBlockedSouth(map[x - 1][y], map[x - 1][y - 1]) && AStar.isNotBlockedWest(flags, map[x - 1][y]) && AStar.isNotBlockedWest(map[x][y - 1], map[x - 1][y - 1])){
n = new AStarNode(this, x - 1, y - 1, map[x - 1][y - 1], finish, map, fop);
if(listNotContain(n, arrayOpen, arrayClosed)){
arrayOpen.add(n);
}
}
}
if(x + 1 < map.length && y + 1 < map[x].length){
AStarNode n;
if(AStar.isNotBlockedNorth(flags, map[x][y + 1]) && AStar.isNotBlockedNorth(map[x + 1][y], map[x + 1][y + 1])
&& AStar.isNotBlockedEast(flags, map[x + 1][y]) && AStar.isNotBlockedEast(map[x][y + 1], map[x + 1][y + 1])){
n = new AStarNode(this, x + 1, y + 1, map[x + 1][y + 1], finish, map, fop);
if(listNotContain(n, arrayOpen, arrayClosed)){
arrayOpen.add(n);
}
}
}
if(y - 1 > -1 && x + 1 < map.length){
AStarNode n;
if(AStar.isNotBlockedSouth(flags, map[x][y - 1]) && AStar.isNotBlockedSouth(map[x + 1][y], map[x + 1][y - 1]) && AStar.isNotBlockedEast(flags, map[x + 1][y]) && AStar.isNotBlockedEast(map[x][y - 1], map[x + 1][y - 1])){
n = new AStarNode(this, x + 1, y - 1, map[x + 1][y - 1], finish, map, fop);
if(listNotContain(n, arrayOpen, arrayClosed)){
arrayOpen.add(n);
}
}
}
if(x - 1 > -1 && y + 1 < map[x].length){
AStarNode n;
if(AStar.isNotBlockedNorth(flags, map[x][y + 1]) && AStar.isNotBlockedNorth(map[x - 1][y], map[x - 1][y + 1]) && AStar.isNotBlockedWest(flags, map[x - 1][y]) && AStar.isNotBlockedWest(map[x][y + 1], map[x - 1][y + 1])){
n = new AStarNode(this, x - 1, y + 1, map[x - 1][y + 1], finish, map, fop);
if(listNotContain(n, arrayOpen, arrayClosed)){
arrayOpen.add(n);
}
}
}
return arrayOpen;
}
private static boolean listNotContain(AStarNode node, final ArrayList<AStarNode> arrayOpen, final ArrayList<AStarNode> arrayClosed){
for(AStarNode n : arrayOpen){
if(n.x == node.x && n.y == node.y){
return false;
}
}
for(AStarNode n : arrayClosed){
if(n.x == node.x && n.y == node.y){
return false;
}
}
return true;
}
}
2014-06-29 15:16:50
Error: divide by Zero at line 165
The following DTMs were not freed: [SRL - Lamp bitmap, SRL - Book of Knowledge]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Minimap Mask bitmap]
function R_GetMaxHealth: extended;
var
Me: Integer;
begin
Me := SmartGetFieldObject(SmartCurrentTarget, 0, client_player);
Result := (SmartGetFieldInt(SmartCurrentTarget, me, Actor_maxHealth) * Actor_maxHealth_Multiplier);
SmartFreeObject(SmartCurrentTarget, me);
end;
(*
R_GetHealthPercent
~~~~~~~~~~~
.. code-block:: pascal
function R_GetHealthPercent: integer;
Returns the Current health percentage of player.
.. note::
by elfyyy
*)
<------------------------- ERROR HERRE ------------------>
function R_GetHealthPercent: extended;
begin
if R_GetHealth = 0 then
begin
Result := 100;
exit;
end;
Result := Round((R_GetHealth / R_GetMaxHealth) * 100);
end;
Writeln(R_GetHealth);
if(R_GetHealthPercent < 75)then // probably from this
begin
if((R_InvCount) = 1)then
exit;
//GOBANK - - - --
2014-06-29 15:19:27
From: Tickyy
getting
the line of the error
function R_GetMaxHealth: extended;
var
Me: Integer;
begin
Me := SmartGetFieldObject(SmartCurrentTarget, 0, client_player);
Result := (SmartGetFieldInt(SmartCurrentTarget, me, Actor_maxHealth) * Actor_maxHealth_Multiplier);
SmartFreeObject(SmartCurrentTarget, me);
end;
(*
R_GetHealthPercent
~~~~~~~~~~~
.. code-block:: pascal
function R_GetHealthPercent: integer;
Returns the Current health percentage of player.
.. note::
by elfyyy
*)
<------------------------- ERROR HERRE ------------------>
function R_GetHealthPercent: extended;
begin
if R_GetHealth = 0 then
begin
Result := 100;
exit;
end;
Result := Round((R_GetHealth / R_GetMaxHealth) * 100);
end;
piece of code where it happens:
Writeln(R_GetHealth);
if(R_GetHealthPercent < 75)then
begin
if((R_InvCount) = 1)then
exit;
//GOBANK - - - --
2014-06-29 22:02:12
2014-06-30 01:16:40
From: Krazy_Meerkat
You could probably check gameobjects and wall/boundary objects for some simple obstacle detection..
Thanks to everyone for supporting Reflection :) We hope you are all having fun!
Great work reporting issues, We'll do our best to fix everything in a timely fashion.
The solvers in F_Randoms rely on 2 custom hooks which have been written into the script (so they are probably outdated).. These hooks are hard to add to the updater b/c I need to know what they were for multiple revisions and they're not listed at JH. I also wanted to see if we could use existing hooks for some kinda unique count on a character model (I saw a java bot only counting the X verticies to do this)
Update:
Modified R_GetMaxHealth to use the skill array (max_health hook might be obsolete b/c it was correct). Works correctly.
Added an extra failsafe to R_GetHealthPercent anyway..
New function R_RotateCameraToTile(Tile: Tpoint): Boolean;
2014-06-30 01:32:20
From: Krazy_Meerkat
I also wanted to see if we could use existing hooks for some kinda unique count on a character model (I saw a java bot only counting the X verticies to do this)
2014-06-30 05:22:58
From: Frement
I wrote that kind of functionality for, I think it was @Tickyy; maybe he could share it since I didn't save it.
2014-06-30 05:24:56
2014-06-30 09:22:48
From: Tickyy
What exactly are we talking about here "unique count on a character" ???
2014-06-30 09:42:00
From: Krazy_Meerkat
A static number relative to the model which can be used to distinguish one npc from another.
2014-06-30 11:42:34
private void calculateChecksum() {
int[] vertices = new int[trianglesX.length];
for (int i = 0; i < trianglesX.length; i++) {
vertices[i] = trianglesX[i] + trianglesZ[i] + trianglesY[i];
}
if (vertices.length != 0) {
long sum = vertices[0];
long tmp;
for (int i = 1; i < trianglesX.length; i++) {
tmp = vertices[i];
tmp = (sum >> 29) + tmp;
tmp = (sum >> 17) + tmp;
sum = (sum << 3) ^ tmp;
}
checksum = sum;
}
}
trianglesX, trianglesY, trianglesZ were badly named fields containing the vertices. I can't guarantee how persistant this will be across different client instances but it seemed to work in testing.
2014-06-30 20:17:37
function R_TryMakeTileOnMS(tile:TPoint;time:integer;reset:boolean):boolean;
var FailSafeTime : integer;
ResetAngle, ResetHeight : extended;
begin
if(reset)then begin
ResetAngle := R_GetMinimapAngleDeg;
ResetHeight := R_GetCameraZ;
end;
markTime(FailSafeTime);
while((TimeFromMark(FailSafeTime) < time) and (not PointInBox(R_TileToMS(tile), MSBox))) do begin
R_RotateCameraToTile(tile);
if(not PointInBox(R_TileToMS(tile), MSBox)) then begin
keyDown(VK_Down);
sleep(100+random(50));
keyUp(VK_Down);
end;
end;
if(PointInBox(R_TileToMS(tile), MSBox))then begin
Result := true;
end else begin
Result := false;
end;
if(reset)then begin
R_MakeCompass(ResetAngle);
markTime(FailSafeTime);
while((TimeFromMark(FailSafeTime) < time) and (abs(R_GetCameraZ - ResetHeight) > 100))do begin
keyDown(VK_Up);
sleep(100+random(50));
keyUp(VK_Up);
end;
end;
end; 2014-06-30 20:23:09
From: Cov
Last bot I worked on we created a model checksum that you could find any in game entity using instead of it's id. It worked something along the lines of: for every vertices add the x, y and z together. Then for each of the summations add the previous one with a few bitwise operators. Then turn the final number to a hex string. If I can find the code we used I'll post it.
trianglesX, trianglesY, trianglesZ were badly named fields containing the vertices. I can't guarantee how persistant this will be across different client instances but it seemed to work in testing.
2014-07-01 02:19:37
From: Cov
Last bot I worked on we created a model checksum that you could find any in game entity using instead of it's id. It worked something along the lines of: for every vertices add the x, y and z together. Then for each of the summations add the previous one with a few bitwise operators. Then turn the final number to a hex string. If I can find the code we used I'll post it.
Edit:trianglesX, trianglesY, trianglesZ were badly named fields containing the vertices. I can't guarantee how persistant this will be across different client instances but it seemed to work in testing.private void calculateChecksum() {
int[] vertices = new int[trianglesX.length];
for (int i = 0; i < trianglesX.length; i++) {
vertices[i] = trianglesX[i] + trianglesZ[i] + trianglesY[i];
}
if (vertices.length != 0) {
long sum = vertices[0];
long tmp;
for (int i = 1; i < trianglesX.length; i++) {
tmp = vertices[i];
tmp = (sum >> 29) + tmp;
tmp = (sum >> 17) + tmp;
sum = (sum << 3) ^ tmp;
}
checksum = sum;
}
}
2014-07-01 03:55:36
From: Brandon
Same algo?
Not sure if that algo will be ideal in Simba though. A model can have tons of vertices and the amount of calls you might have to make to get them all could be a lot to ask SMART for?
From: Krazy_Meerkat
Frement and I tried to get some npc model info from smart yesterday and it's not looking good.. Frement found that, for the npcs, their model is returned from a method using the Index/NpcID as arguments.. So b/c they use a method and not a variable, we don't have access to it :(
That being said.. There are TransformIds which we can access.. I'll try and add some new hooks to the updater later on today (and update the broken ones).. It can be a lengthy process..
Welcome Cov and thanks :) Are you the same Cov from JH?
2014-07-01 19:46:43
Exception in Script: Operator expected at line 394, column 26 in file "C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Tiles.simba"
2014-07-01 22:23:07
From: ibby93
Every time I try to run a script that uses reflections, I get the following error:
2014-07-01 22:45:40
2014-07-02 03:52:48
From: Brandon
Same algo?
Not sure if that algo will be ideal in Simba though. A model can have tons of vertices and the amount of calls you might have to make to get them all could be a lot to ask SMART for?
From: Krazy_Meerkat
Frement and I tried to get some npc model info from smart yesterday and it's not looking good.. Frement found that, for the npcs, their model is returned from a method using the Index/NpcID as arguments.. So b/c they use a method and not a variable, we don't have access to it :(
That being said.. There are TransformIds which we can access.. I'll try and add some new hooks to the updater later on today (and update the broken ones).. It can be a lengthy process..
From: Krazy_Meerkat
Welcome Cov and thanks :) Are you the same Cov from JH?
2014-07-02 03:52:52
From: Krazy_Meerkat
You will have to re-download the include from here: https://code.google.com/p/osrreflection/source/browse/ if you're having this problem.. Just fixed the missing operators although not too sure why only you had this problem with R_InPolygon..
2014-07-02 20:01:20
Now after a reset…
2014-07-03 03:40:09
2014-07-03 07:19:54
2014-07-03 07:47:15
From: Haxz
After the update, R_FindNormalRandoms takes one or two seconds to check for randoms, making scripts run slower when it is in a loop.
2014-07-03 08:03:54
From: Tickyy
indeed, and it does false detections, it says that it has detected the frog random, without actually happening or frog being near, meaning that the last changes you've made @Krazy_Meerkat about the npc's wasn't a good idea..
client_npcIndices = 'client.bv';
2014-07-03 08:30:21
From: Krazy_Meerkat
I am working hard to fix the problem, but don't tell me that the last changes I made were a bad idea when you don't even know what I did.
2014-07-03 08:59:39
From: Tickyy
I Apologize, i am willing to help, so you are trying to find an alternative way of finding randoms, without calling R_GetAllNpcs?
2014-07-03 11:32:18
From: Krazy_Meerkat
I'm also sorry if I was rude.
@Cov I think that functions could be added to SMART to invoke methods using reflection, but I feel that they've been left out for a good reason.. Looking over some examples, there could be issues if properties of the method are changed (public or non-public method call, number of parameters, etc.)..
It's a good suggestion, but TransformIds should be enough for our purposes :)
Latest Update:
Major edits to remove lag-bombs from Antirandoms..
NpcIndex Hook re-added.
2014-07-03 11:40:20
2014-07-03 12:04:10
From: Krazy_Meerkat
@Cov I think that functions could be added to SMART to invoke methods using reflection, but I feel that they've been left out for a good reason.. Looking over some examples, there could be issues if properties of the method are changed (public or non-public method call, number of parameters, etc.)..
It's a good suggestion, but TransformIds should be enough for our purposes :)
2014-07-03 12:50:47
From: Krazy_Meerkat
I'm also sorry if I was rude.
@Cov I think that functions could be added to SMART to invoke methods using reflection, but I feel that they've been left out for a good reason.. Looking over some examples, there could be issues if properties of the method are changed (public or non-public method call, number of parameters, etc.)..
It's a good suggestion, but TransformIds should be enough for our purposes :)
Latest Update:
Major edits to remove lag-bombs from Antirandoms..
NpcIndex Hook re-added.
2014-07-03 13:57:13
function IsDoorOpen: Boolean;
var
Door: TRSObject;
begin
//WriteLn(R_GetObjectAt(1, Point(3204, 3432)));
If R_FindObjectNearTile(Door, 25720, 1, 3, Point(3204, 3432)) then
WriteLn('Door found');
R_OpenDoor(Point(3204, 3432), 'E');
end;
2014-07-03 14:05:44
From: Athylus
Hey look I'm no pro with this at all and I'm just messing around with my third script, but thought I'd share this for the ppl working on it. I tried to open a door, and it moves the mouse very close but then stops and says succesfully executed. Here's my code (yes, no failsafes but I'm assuming we're not supposed to need that).
function IsDoorOpen: Boolean;
var
Door: TRSObject;
begin
//WriteLn(R_GetObjectAt(1, Point(3204, 3432)));
If R_FindObjectNearTile(Door, 25720, 1, 3, Point(3204, 3432)) then
WriteLn('Door found');
R_OpenDoor(Point(3204, 3432), 'E');
end;
2014-07-03 16:54:40
From: Athylus
Hey look I'm no pro with this at all and I'm just messing around with my third script, but thought I'd share this for the ppl working on it. I tried to open a door, and it moves the mouse very close but then stops and says succesfully executed. Here's my code (yes, no failsafes but I'm assuming we're not supposed to need that).
function IsDoorOpen: Boolean;
var
Door: TRSObject;
begin
//WriteLn(R_GetObjectAt(1, Point(3204, 3432)));
If R_FindObjectNearTile(Door, 25720, 1, 3, Point(3204, 3432)) then
WriteLn('Door found');
R_OpenDoor(Point(3204, 3432), 'E');
end;
2014-07-03 17:06:24
From: Dervish
You need begin and end; if there are multiple things after a if […] then statement.
2014-07-03 17:32:34
From: Athylus
I'm such a newfag, but at least I don't leech and make my own scripts. Btw, it works like 50% of the time. It works better when I change the angle of the camera to a low pitch. Edit: It does say Door Found every time though, lemme try repeating this. LoL game first tho.
2014-07-03 23:50:18
From: Haxz
Maybe you can try make compass to East when you're trying to open the door.
2014-07-04 05:35:52
[Hint] E:\Simba\Includes\SRL-OSR\SRL\Reflection\AntiRandoms\AntiRandoms.simba(252:3): Variable 'FOUNDNPC' never used at line 251
[Error] E:\Simba\Includes\SRL-OSR\SRL\Reflection\AntiRandoms\AntiRandoms.simba(295:5): Identifier expected at line 295
Compiling failed.
2014-07-04 07:16:06
From: snsgold
there still somethings wrong with AntiRandoms.simba
function R_FindCombatRandom: boolean;
var
Names: TStringArray;
Temp: TNPCArray;
i: integer;
begin
Result := False;
if (not R_UnderAttack) then
exit;
if (R_PrayerRandoms) then
begin
Names := ['security guard', 'evil chicken', 'river troll', 'rock golem', 'shade', 'swarm', 'tree spirit', 'ent', 'zombie'];
end else
Names := ['security guard', 'evil chicken', 'river troll', 'rock golem', 'shade', 'swarm', 'tree spirit', 'ent'];
Temp := R_GetAllNpcs;
for i := 0 to high(Temp) do
if (ExactStrInArr(Lowercase(Temp[i].Name), Names)) then
begin
if (not R_NearTile(Temp[i].Tile, 10)) then
Continue;
Result := True;
Break;
end;
if Result then
writeln('[Reflection Anti-Randoms] ''' + (Temp[i].Name) + ''' Combat random detected! Running away...');
end;
function R_FindCombatRandomEx: boolean;
var
Names: TStringArray;
i: integer;
begin
Result := False;
if ((not R_UnderAttack) or (length(R_FoundNpcs) < 1)) then
exit;
if (R_PrayerRandoms) then
begin
Names := ['security guard', 'evil chicken', 'river troll', 'rock golem', 'shade', 'swarm', 'tree spirit', 'ent', 'zombie'];
end else
Names := ['security guard', 'evil chicken', 'river troll', 'rock golem', 'shade', 'swarm', 'tree spirit', 'ent'];
for i := 0 to high(R_FoundNpcs) do
if (ExactStrInArr(Lowercase(R_FoundNpcs[i].Name), Names)) then
begin
R_FoundNpcs[i]:= R_GetTNPC(R_FoundNpcs[i].Index);
if (not R_NearTile(R_FoundNpcs[i].Tile, 10)) then
continue;
Result := True;
Break;
end;
if Result then
writeln('[Reflection Anti-Randoms] ''' + (R_FoundNpcs[i].Name) + ''' Combat random detected! Running away...');
end;Everyone else should be fine, the problem has been fixed, if you auto-update to #72 it will be ok. If you can't compile the include, remember you can always download a new copy from the GC and it should fix any broken files.
2014-07-04 13:29:51
From: Krazy_Meerkat
@Haxz, I modified line 300 and updated the include. Can you let me know if you're still getting an out-of-range error?
@Athylus, The function R_OpenDoor will return true if it opened the door. Sometimes it can't find the uptext and it will return false that it didn't open the door.
2014-07-05 01:27:05
From: Haxz
Not getting the error anymore, script running fine for 4 hours straight now. Good work and thanks!
2014-07-05 02:25:16
_Node := _Next;
_Next := SmartGetFieldObject(SmartCurrentTarget, _Next, Node_next);
SmartFreeObject(SmartCurrentTarget, _Node);
2014-07-05 03:35:37
From: Brandon
If you use GroundItems a lot, you could possibly have memory issues.. Not sure, but I know this can't be right:
https://code.google.com/p/osrreflection/source/browse/Core/GroundItems.simba#64
Leaks _Next and free's _Node when it is unassigned.
Should most likely be:
_Node := _Next;
_Next := SmartGetFieldObject(SmartCurrentTarget, _Next, Node_next);
SmartFreeObject(SmartCurrentTarget, _Node);
As for the issue of not being able to call methods, why not modify SMART and add it?
2014-07-05 04:26:11
D:\Simba\Includes\SRL-OSR\SRL\Reflection\AntiRandoms\AntiRandoms.simba(116:39): Unknown identifier 'R_FindFrog' at line 116
2014-07-05 04:38:20
2014-07-05 05:09:35
From: snsgold
after update to 75
got this errorr
2014-07-05 05:30:04
From: fish1328
The problem with invoking methods is that you can corrupt the stream causing the game to crash as it would be out of sync. I could never master it with reflection. It will be interesting to see how you guys do it :-D
public static void run() throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, Exception {
ClassLoader loader = applet.getClassLoader();
Object[] players = getPlayers(loader);
for (Object player : players) {
if (player != null) {
System.out.println(getPlayerName(loader, player));
System.out.println(getPlayerModel(loader, player));
System.out.println();
}
}
}
static String getPlayerName(ClassLoader loader, Object player) throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
Field f = loader.loadClass("y").getDeclaredField("j");
f.setAccessible(true);
return (String)f.get(player);
}
static Object getPlayerModel(ClassLoader loader, Object player) throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
Field f = loader.loadClass("y").getDeclaredField("f");
f.setAccessible(true);
return f.get(player);
}
static Object[] getPlayers(ClassLoader loader) throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
Field f = loader.loadClass("client").getDeclaredField("gd");
f.setAccessible(true);
return (Object[])f.get(null);
}
Miss*Ail
null
Mosinyan
null
a3-seperate
null
Stanley*Mole
null
Vertikaali
null
I*XII*I
null
Wrangiw
null
2014-07-05 05:57:11
From: Brandon
Well.. I didn't think about that at all. Either way, I couldn't get the player model..
public static void run() throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, Exception {
ClassLoader loader = applet.getClassLoader();
Object[] players = getPlayers(loader);
for (Object player : players) {
if (player != null) {
System.out.println(getPlayerName(loader, player));
System.out.println(getPlayerModel(loader, player));
System.out.println();
}
}
}
static String getPlayerName(ClassLoader loader, Object player) throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
Field f = loader.loadClass("y").getDeclaredField("j");
f.setAccessible(true);
return (String)f.get(player);
}
static Object getPlayerModel(ClassLoader loader, Object player) throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
Field f = loader.loadClass("y").getDeclaredField("f");
f.setAccessible(true);
return f.get(player);
}
static Object[] getPlayers(ClassLoader loader) throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
Field f = loader.loadClass("client").getDeclaredField("gd");
f.setAccessible(true);
return (Object[])f.get(null);
}
Prints:
Miss*Ail
null
Mosinyan
null
a3-seperate
null
Stanley*Mole
null
Vertikaali
null
I*XII*I
null
Wrangiw
null
Not sure why models are null.. It's definitely a field and not a method..
2014-07-05 06:47:13
2014-07-05 07:55:17
From: fish1328
Pretty sure the model return methods have funky parameters. I've always done it by adding a field to the class and setting that. That's injection though :/
2014-07-05 09:39:42
From: Frement
f.y is a field "cl f;", but this is for getting the players model, not NPC's models.
EDIT: NPC methods "n", "a" and "z" return a model, method z takes in one integer as parameter.
smartPushMethodParam(0);
smartInvokeMethod('y.z', 'I'); //auto pop's the params.
smartPushMethodParam(50);
smartPushMethodParam(200);
smartPushMethodParam('HELLO');
smartPushMethodParam(true);
smartInvokeMethod('eos.Main.test', 'IILjava/lang/String;Z');
/**
*
* @author Brandon
*/
public class Main {
static final HashMap<String, Class> map = new HashMap<>();
static {
map.put("V", void.class);
map.put("I", int.class);
map.put("J", long.class);
map.put("F", float.class);
map.put("D", double.class);
map.put("Z", boolean.class);
map.put("C", char.class);
map.put("B", byte.class);
map.put("S", short.class);
map.put(".V", void.class);
map.put(".I", int.class);
map.put(".J", long.class);
map.put(".F", float.class);
map.put(".D", double.class);
map.put(".Z", boolean.class);
map.put(".C", char.class);
map.put(".B", byte.class);
map.put(".S", short.class);
map.put("[I", int[].class);
map.put("[J", long[].class);
map.put("[F", float[].class);
map.put("[D", double[].class);
map.put("[Z", boolean[].class);
map.put("[C", char[].class);
map.put("[B", byte[].class);
map.put("[S", short[].class);
map.put("[[I", int[][].class);
map.put("[[J", long[][].class);
map.put("[[F", float[][].class);
map.put("[[D", double[][].class);
map.put("[[Z", boolean[][].class);
map.put("[[C", char[][].class);
map.put("[[B", byte[][].class);
map.put("[[S", short[][].class);
map.put("[[[I", int[][][].class);
map.put("[[[J", long[][][].class);
map.put("[[[F", float[][][].class);
map.put("[[[D", double[][][].class);
map.put("[[[Z", boolean[][][].class);
map.put("[[[C", char[][][].class);
map.put("[[[B", byte[][][].class);
map.put("[[[S", short[][][].class);
}
public Class[] buildClassParameters(ClassLoader loader, String params) throws ClassNotFoundException {
if (params == null) {
return null;
}
final String regex = "(L(?!L)[A-z/]+;)|(\\[\\[\\[[A-z])|(\\[\\[[A-z])|(\\[[A-z])|(\\.[A-z])|([A-z])";
Matcher m = Pattern.compile(regex).matcher(params);
ArrayList<Class> result = new ArrayList<>();
while(m.find()) {
if (map.containsKey(m.group(0))) {
result.add(map.get(m.group(0)));
} else {
result.add(Class.forName(m.group(0).replaceAll("^L|;", "").replace('/', '.'), false, loader));
}
}
if (!result.isEmpty()) {
return result.toArray((Class[])java.lang.reflect.Array.newInstance(Class.class, result.size()));
}
return null;
}
public Method findMethodFromPath(ClassLoader loader, String path, String signature) throws Exception {
int idx = path.lastIndexOf(".");
String[] parts = new String[] {path.substring(0, idx), path.substring(idx + 1)}; //allows you to invoke even SMART's internal functions..
Class cls = loader.loadClass(parts[0]);
if (cls != null) {
Method m = cls.getDeclaredMethod(parts[1], buildClassParameters(loader, signature));
m.setAccessible(true);
return m;
}
return null;
}
public Object invokeMethodWithPath(ClassLoader loader, String path, String signature, Object[] params) throws Exception {
return findMethodFromPath(loader, path, signature).invoke(params);
}
public void test(String[] args) {
//...
//...
//...
ClassLoader loader = applet.getClassLoader();
Object me = getMe(loader); //get my player.. client.hj
Method m = findMethodFromPath(loader, "y.a", null); //find "y.a" method.
Method m2 = findMethodFromPath(loader, "y.z", "I"); //find "y.z" method. This method is "protected"!
Method m3 = findMethodFromPath(loader, "y.n", null); //find "y.n" method.
System.out.println(getModelVertexCount(loader, m.invoke(me))); //prints 628
System.out.println(getModelVertexCount(loader, m2.invoke(me))); //prints 628
System.out.println(getModelVertexCount(loader, m3.invoke(me))); //prints 628
Method m = findMethodFromPath(loader, "eos.Main.testSignatureParser", "IILjava/lang/String;Z"); //find my own class method
System.out.println(m.invoke(null, 50, 200, "HELLO", true)); //prints "50200HELLOtrue".
}
public static String testSignatureParser(int A, int B, String C, boolean D) {
return new StringBuilder().append(A).append(B).append(C).append(D).toString();
}
public static void main(String[] args) {
new Main().test(args);
}
}
2014-07-05 12:51:30
2014-07-05 14:02:57
2014-07-05 15:40:03
2014-07-05 22:14:43
[Reflection Anti-Randoms] Frog random detected! Solving...
Math error at line 1512
The following DTMs were not freed: [SRL - Lamp bitmap, SRL - Book of Knowledge, 2, 3]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Minimap Mask bitmap, 3, 4]2014-07-06 05:33:21
From: ineedbot
I think its possible to have banking reflection done, do you think you guys can do it? I'd do it myself but i have no experience in developing reflection with hooks, widgets, multipliers etc.
Also when a Random NPC comes on screen, the whole script stops to a halt and never runs again until you force restart it. idk if its still lingering but it was yesterday..EDIT: NVM its fixed…
Also one more thing, is it possible to do equipment reflection? To see if you have the axe wielded, etc.
However frogSolver is giving a math error….[Reflection Anti-Randoms] Frog random detected! Solving...
Math error at line 1512
The following DTMs were not freed: [SRL - Lamp bitmap, SRL - Book of Knowledge, 2, 3]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Minimap Mask bitmap, 3, 4]
Shows SRL-OSR/SRL/Core/math.simba
function R_BankScreen: Boolean;
begin
Result := (Pos('Bank of Rune', R_GetWidgetText(R_GetWidget(12, 2))) > 0);
end;
type
TInventoryItem = record
ID, Quantity, Slot: Integer;
end;
TInventoryItemArray = Array of TInventoryItem;
function R_GetInventoryItems: TInventoryItemArray;
var
_Inventory, _InventorySlot, _ItemID, _ItemQuantity: Integer;
begin
_Inventory := R_GetWidget(149, 0);
SetLength(Result, 28);
for _InventorySlot := 0 to 27 do begin
_ItemID := SmartGetFieldArrayInt(SmartCurrentTarget, _Inventory, Widget_getItems, _InventorySlot);
if (_ItemID > 0) then begin
_ItemQuantity := SmartGetFieldArrayInt(SmartCurrentTarget, _Inventory, Widget_getStackSizes, _InventorySlot);
with Result[_InventorySlot] do begin
ID := _ItemID;
Quantity := _ItemQuantity;
Slot := _InventorySlot + 1;
end;
end;
end;
SmartFreeObject(SmartCurrentTarget, _Inventory);
end;2014-07-06 06:44:34
2014-07-06 06:44:59
From: ineedbot
frogSolver is giving a math error….[Reflection Anti-Randoms] Frog random detected! Solving...
Math error at line 1512
The following DTMs were not freed: [SRL - Lamp bitmap, SRL - Book of Knowledge, 2, 3]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Minimap Mask bitmap, 3, 4]
Shows SRL-OSR/SRL/Core/math.simba
2014-07-06 06:52:16
Methods
---> (II)Lau; 'getItemComposite' returns 'aj.z' [STATIC]
---> (IB)Lan; 'getNPCComposite' returns 'u.z' [STATIC]
---> (II)Lav; 'getObjectComposite' returns 'cs.z' [STATIC]
{* NPCDefinition - 4 Hooks *}
NPCDefinition = 'an';
NPCDefinition_Actions = 'v';
NPCDefinition_ID = 'r';
NPCDefinition_ID_Multiplier = -563242523;
NPCDefinition_Level = 'p';
NPCDefinition_Level_Multiplier = -545532659;
NPCDefinition_Name = 'e';
{* ObjectDefinition - 2 Hooks *}
ObjectDefinition = 'av';
ObjectDefinition_Actions = 'af';
ObjectDefinition_Name = 'i';
{* ItemDefinition - 9 Hooks *}
ItemDefinition = 'au';
ItemDefinition_GroundActions = 'l';
ItemDefinition_ModelColours = 'f';
ItemDefinition_ModelSizeX = 'ay';
ItemDefinition_ModelSizeX_Multiplier = 836976809;
ItemDefinition_ModelSizeY = 'am';
ItemDefinition_ModelSizeY_Multiplier = 1785188107;
ItemDefinition_ModelSizeZ = 'az';
ItemDefinition_ModelSizeZ_Multiplier = 1752736447;
ItemDefinition_Name = 'a';
ItemDefinition_NewModelColours = 'o';
ItemDefinition_InventoryActions = 'w';
ItemDefinition_isMembers = 'p';
The first parameter is the ID. The second parameter is a dummy so just pass 0 to it
2014-07-06 16:52:58
2014-07-06 17:05:27
From: lotery33
I'm getting the
Exception in Script: Operator expected at line 446, column 3 in file "C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Tiles.simba"
error, I downloaded the latest version
2014-07-06 18:25:41
From: Frement
function R_BankScreen: Boolean;
begin
Result := (Pos('Bank of Rune', R_GetWidgetText(R_GetWidget(12, 2))) > 0);
end;
function R_BankScreen : boolean;
begin
result := R_GetWidgetText(R_GetWidget(12, 15)) = 'Swap';
end; From: fish1328
Equipment is easy, a wrapper class is made for the widget much like you would do with bank or inventory. The wrapper class then holds the functions related to it.
Banking is very easy as well, as long as widgets work, then the only slightly hard bit of banking is the scrolling however, that can be done easily by pressing the up and down arrows on the scroll bar (not as efficient as clicking on the scroll bar but I could never get that perfect :/)
2014-07-07 00:42:54
From: Awkwardsaw
function R_BankScreen : boolean;
begin
result := R_GetWidgetText(R_GetWidget(12, 15)) = 'Swap';
end;
is a better way of doing it, just because if a certain tab is open, "Bank of runescape" doesn't show up
2014-07-07 02:31:10
From: Awkwardsaw
function R_BankScreen : boolean;
That's the problem ;) As far as I know, we can't read the names of the widgets, which would help out a ton with banking/ equipment. We also need to be able to get the components of a child. Of couse if I'm missing something, please point me to the right direction
2014-07-07 03:41:21
From: Brandon
Ahh in that case, I got something working for SMART.. I tested it.. Works using signatures and would allow you to call functions based solely on strings (so Simba can send them to SMART's socket).. IE:
smartPushMethodParam(0);
smartInvokeMethod('y.z', 'I'); //auto pop's the params.
smartPushMethodParam(50);
smartPushMethodParam(200);
smartPushMethodParam('HELLO');
smartPushMethodParam(true);
smartInvokeMethod('eos.Main.test', 'IILjava/lang/String;Z');
Not sure if I like the above.. it does seem annoying the way parameters would be sent to SMART but I can't think of any other way at this moment..
2014-07-07 06:53:42
Procedure Money;
var
i:integer;
begin
i:= (R_InventoryContainsCount([880, 333]));
Writeln('Approx. Money: ' + inttostr(i) + ' K');
end; Approx. Money: 0 K
2014-07-07 15:38:51
From: Cov
What about using VarArgs? I think they could be used in this situation, and as long as you were using standard types minus object you should be okay?
2014-07-07 15:48:17
From: Tickyy
Procedure Money;
var
i:integer;
begin
i:= (R_InventoryContainsCount([880, 333]));
Writeln('Approx. Money: ' + inttostr(i) + ' K');
end;
This isn't working for some reason…
function R_InventoryContainsCount(IDs: TIntegerArray): Integer;
var
I: Integer;
_Items: TInventoryItemArray;
begin
_Items := R_GetInventoryItems;
for I := 0 to High(_items) do begin
if (InIntArray(IDs, _Items[I].ID)) then begin
inc(result);
end;
end;
end;function R_GetInventoryItems: TInventoryItemArray; to do what you want.
2014-07-07 17:50:15
From: Frement
function R_InventoryContainsCount(IDs: TIntegerArray): Integer;
var
I: Integer;
_Items: TInventoryItemArray;
begin
_Items := R_GetInventoryItems;
for I := 0 to High(_items) do begin
if (InIntArray(IDs, _Items[I].ID)) then begin
inc(result);
end;
end;
end;
It counts the items found in inventory, so you are using it wrong to begin with.
You need to useto do what you want.function R_GetInventoryItems: TInventoryItemArray;
Procedure Money;
var
InvItems:TInventoryItemArray;
i,j:integer;
begin
InvItems := R_GetInventoryItems;
if (length(InvItems) = 0)then
exit;
for i:= 0 to high(InvItems) do
if(InvItems[i].ID = 890)then
J := ((InvItems[i].Quantity) * 135);
WriteLn('Approx. Money: ' + inttostr(j) + ' K');
end;
2014-07-07 17:52:56
From: Frement
function R_InventoryContainsCount(IDs: TIntegerArray): Integer;
var
I: Integer;
_Items: TInventoryItemArray;
begin
_Items := R_GetInventoryItems;
for I := 0 to High(_items) do begin
if (InIntArray(IDs, _Items[I].ID)) then begin
inc(result);
end;
end;
end;
It counts the items found in inventory, so you are using it wrong to begin with.
You need to useto do what you want.function R_GetInventoryItems: TInventoryItemArray;
Procedure Money;
var
InvItems:TInventoryItemArray;
i,j:integer;
begin
InvItems := R_GetInventoryItems;
if (length(InvItems) = 0)then
exit;
for i:= 0 to high(InvItems) do
if(InvItems[i].ID = 890)then
J := ((InvItems[i].Quantity) * 135);
WriteLn('Approx. Money: ' + inttostr(j) + ' K');
end;
Approx. Money: 0 K
2014-07-08 23:07:22
2014-07-09 05:11:51
From: Krazy_Meerkat
I just found that math error again while using frogsolve.. It was caused by R_BlindWalkEx's use of TPABetweenPoints.
Update:
Fixed part of the frog solver which wouldn't update the npc list when the player entered the cave.
Added some more precautions to R_BlindWalkEx
2014-07-10 04:06:42
From: Brandon
Simba has no such thing. The java side has no problems.. It's the Simba side of SMART that has to do all the work really.
2014-07-12 02:39:35
2014-07-13 13:36:41
From: Krazy_Meerkat
I just found that math error again while using frogsolve.. It was caused by R_BlindWalkEx's use of TPABetweenPoints.
Update:
Fixed part of the frog solver which wouldn't update the npc list when the player entered the cave.
Added some more precautions to R_BlindWalkEx
[Reflection Anti-Randoms] Frog random detected! Solving…
[Reflection Anti-Randoms] Failed Frog random, logging out.
2014-07-13 13:58:59
2014-07-13 22:41:37
2014-07-14 18:10:35
2014-07-14 23:06:19
2014-07-14 23:11:55
From: Krazy_Meerkat
ineedbot, 'talk' randoms already have to be within 3 tiles of the player to trigger the overhead text search, it used to be a 10 second pause which I reduced to 5 seconds, this was in the original version that @elfyyy wrote. If you can think of a better way to find talking randoms then feel free to post and I'll discuss it.
2014-07-14 23:43:45
From: Frement
Didn't I at some point write the code for getting our player id to identify which randoms belong to us? Since the "Interacting" field of the NPC is our player id when it belongs to us. Doesn't need any waits, it's one integer check, very fast. If you can't find the code anywhere, remind me on skype.
2014-07-15 00:31:01
function R_GetPlayerIndex: Integer;
begin
Result := (SmartGetFieldInt(SmartCurrentTarget, 0, 'client.hv') * 1836161929) + 32768;
end;Player[************] has index 34726
Tile: (3185, 3436)
NPC[Mysterious Old Man] is interacting with us.
ID: 2069
Index: 28932
Text: Greetings ************!
Tile: (3185, 3437)
NPC[Mysterious Old Man] is interacting with us.
ID: 2069
Index: 28932
Text: Here you go ************, it's all yours!
Tile: (3185, 3437)NPC[Stray dog] is interacting with us.
ID: 2840
Index: 14856
Text:
Tile: (3185, 3432)
2014-07-15 02:38:26
2014-07-15 02:42:47
2014-07-15 06:51:03
2014-07-15 15:46:11
From: Krazy_Meerkat
New Update :)
Added new function R_IsNpcInArray(NpcName:String; NpcArray: TNpcArray): Boolean;
Stopped "nulls" from activating the frog solver unless there's also a frog around.

2014-07-17 06:14:26
SRL Compiled in 15 msec
Attempting to pair to a smart client..
Found 1 free client(s), attempting to pair to one…
Set SMART[4976] as Simba's target
Succesfully paired to a existing client, SMART[4976]
Reflection Hooks are outdated
No need to post about it, we are currently working on it. ~ Reflection dev's
Succesfully freed SMART[4976]
Successfully executed.
2014-07-17 07:13:05
From: villur700
There was a an update like 5min ago or so, kicked me out and said runescape has an update, please reload the page and now when sarting the script again, it says "Reflection Hooks are outdated" and stops the script. I guess reflection needs to be updated now?
2014-07-17 12:33:18
2014-07-17 13:45:16
From: ineedbot
Krazy_Meerkat was fast with these hooks with this update! great job!
2014-07-17 17:25:37
From: Tickyy
No need to post about it, we are currently working on it. ~ Reflection dev's
you saw everything but still wanted to post about it? seriously?
2014-07-18 00:10:49
From: villur700
I just started using it yesterday, was unsure how fast will it be updated and etc, wanted to actually just know more :/
2014-07-18 00:18:25
From: villur700
I just started using it yesterday, was unsure how fast will it be updated and etc, wanted to actually just know more :/
2014-07-18 16:31:07
0=Index: (190) ChildIndex: (0) Widget: (432458372) Text: ()
1=Index: (190) ChildIndex: (1) Widget: (432456712) Text: ()
2=Index: (190) ChildIndex: (2) Widget: (432456684) Text: ()
3=Index: (190) ChildIndex: (3) Widget: (432456672) Text: ()
4=Index: (190) ChildIndex: (4) Widget: (432456652) Text: ()
5=Index: (190) ChildIndex: (5) Widget: (432456616) Text: ()
6=Index: (190) ChildIndex: (6) Widget: (432457680) Text: (Which shape has the number 6?)
7=Index: (190) ChildIndex: (7) Widget: (432457664) Text: ()
8=Index: (190) ChildIndex: (8) Widget: (432457616) Text: ()
9=Index: (190) ChildIndex: (9) Widget: (432457604) Text: ()
10=Index: (190) ChildIndex: (10) Widget: (432457580) Text: (Pentagon)
11=Index: (190) ChildIndex: (11) Widget: (432456552) Text: (Square)
12=Index: (190) ChildIndex: (12) Widget: (432456540) Text: (Circle)
13=Index: (190) ChildIndex: (13) Widget: (432456520) Text: ()
14=Index: (190) ChildIndex: (14) Widget: (432456496) Text: ()
15=Index: (190) ChildIndex: (15) Widget: (432456480) Text: ()
function R_GetWidgetModelID(WidgetPointer: Integer): Integer;
begin
result := smartGetFieldInt(smartCurrentTarget, WidgetPointer, 'af') * -1749303759;
end; To get widget ids so it can tell apart from shapes and numbers. But since its a static hook from a while ago, its prob a broken hook. It'd be cool if you can get this hook working, and possibly get the rest of the randoms working too!
2014-07-19 23:20:48
2014-07-20 02:55:45
{*Starting Deob*
* Starting Method Removal*
* 2457/4158 methods removed*
* Method Removal Finished*
* Starting Arithmetic Deob*
* 150/212 expressions modified*
* Arithmetic Deob Finished*
* Creating Jar*
* Finished Jar*
* Location: C:\Users\Chris\AppData\Roaming/SRLUpdater/output.jar*
*Ending Deob*}
2014-07-20 04:56:08
2014-07-23 00:24:49
[190]
0=Index: (190) ChildIndex: (0) Widget: (431923788) Text: () Model: 7007
1=Index: (190) ChildIndex: (1) Widget: (431921260) Text: () Model: 7023
2=Index: (190) ChildIndex: (2) Widget: (431920316) Text: () Model: 7035
3=Index: (190) ChildIndex: (3) Widget: (431920236) Text: () Model: 7017
4=Index: (190) ChildIndex: (4) Widget: (431915500) Text: () Model: 7026
5=Index: (190) ChildIndex: (5) Widget: (431923060) Text: () Model: 7049
6=Index: (190) ChildIndex: (6) Widget: (431922944) Text: (Which shape has the number 9?) Model: -1
7=Index: (190) ChildIndex: (7) Widget: (431924416) Text: () Model: -1
8=Index: (190) ChildIndex: (8) Widget: (431921116) Text: () Model: -1
9=Index: (190) ChildIndex: (9) Widget: (431921036) Text: () Model: -1
10=Index: (190) ChildIndex: (10) Widget: (431920132) Text: (Square) Model: -1
11=Index: (190) ChildIndex: (11) Widget: (431920952) Text: (Star) Model: -1
12=Index: (190) ChildIndex: (12) Widget: (431922580) Text: (Circle) Model: -1
13=Index: (190) ChildIndex: (13) Widget: (431922492) Text: () Model: -1
14=Index: (190) ChildIndex: (14) Widget: (431922836) Text: () Model: -1
15=Index: (190) ChildIndex: (15) Widget: (431920804) Text: () Model: -1[Reflection Anti-Randoms] Sandwich lady random detected! Solving...
Solved sandwich lady with choice kebab [10729]
[Reflection Anti-Randoms] Solved Sandwich lady random!Molly detected
[Reflection Anti-Randoms] Molly random detected! Solving...
Getting molly model id's
[Reflection Anti-Randoms] Entering Control Room
[Reflection Anti-Randoms] Door Opened
Clicking control panel
(0, 0)
Finding suspect tile
Suspect index is 21909
Starting endless loop to track suspect
[Reflection Anti-Randoms] Door Opened
[Reflection Anti-Randoms] Solved Molly random![Reflection Anti-Randoms] Rewards random detected! Solving...
Found shape Triangle with number 1
Didn't match the question.
Found shape Square with number 0
Correct shape and number found.
[Reflection Anti-Randoms] Solved Rewards random![(3057, 1, 1), (3061, 1, 2), (3058, 1, 3), (6182, 1, 4), (6655, 1, 5), (6656, 1, 6), (6654, 1, 7), (6183, 14, 8), (6181, 1, 9), (3059, 1, 10), (3060, 1, 11), (2922, 2, 12), (6180, 1, 13), (1040, 1, 14), (563, 824, 15), (557, 3856, 16), (554, 11324, 17), (560, 450, 18), (561, 37, 19), (558, 4645, 20), (1381, 1, 21), (1383, 1, 22), (562, 273, 23), (555, 6229, 24), (1385, 1, 25), (556, 5782, 26), (559, 7, 27), (1739, 1, 28), (383, 6517, 29), (453, 168, 30), (1515, 2278, 31), (3049, 30, 32), (10149, 54, 33), (5075, 37, 34), (7993, 1, 35), (1605, 46, 36), (1603, 33, 37), (1601, 15, 38), (62, 282, 39), (1517, 2473, 40), (1607, 27, 41), (5283, 1, 42), (5284, 1, 43), (5323, 7, 44), (5313, 2, 45), (5316, 1, 46), (5286, 3, 47), (1511, 10, 48), (1519, 2575, 49), (5102, 17, 50), (5319, 178, 51), (5318, 620, 52), (5307, 86, 53), (319, 179, 54), (5104, 11, 55), (5280, 1, 56), (5310, 12, 57), (5324, 98, 58), (5098, 26, 59), (5308, 55, 60), (5096, 33, 61), (5306, 66, 62), (60, 445, 63), (58, 377, 64), (2349, 299, 65), (1621, 8, 66), (1521, 239, 67), (2351, 1, 68), (315, 353, 69), (329, 3407, 70), (1635, 1, 71), (438, 165, 72), (436, 149, 73), (361, 182, 74), (359, 333, 75), (331, 41, 76), (321, 31, 77), (333, 5152, 78), (335, 35, 79), (985, 1, 80), (1623, 24, 81), (249, 1, 82), (201, 1, 83), (205, 2, 84), (447, 34, 85), (2003, 24, 86), (8790, 16, 87), (1539, 426, 88), (960, 215, 89), (8496, 11, 90), (8502, 145, 91), (8504, 10, 92), (1891, 276, 93), (1901, 38, 94), (1937, 12, 95), (1993, 6, 96), (5097, 10, 97), (1987, 7, 98), (5309, 43, 99), (7919, 5, 100), (5322, 54, 101), (5320, 22, 102), (5305, 128, 103), (5099, 11, 104), (5101, 18, 105), (5103, 8, 106), (5311, 8, 107), (5292, 12, 108), (5293, 3, 109), (385, 17, 110), (387, 9, 111), (5100, 5, 112), (5291, 7, 113), (5105, 2, 114), (5294, 3, 115), (5282, 2, 116), (379, 486, 117), (377, 93, 118), (317, 28, 119), (375, 2, 120), (373, 13, 121), (371, 280, 122), (11330, 11, 123), (11328, 13, 124), (5073, 17, 125), (1617, 6, 126), (9003, 1, 127), (1513, 21, 128), (5074, 6, 129), (405, 2, 130), (401, 13, 131), (407, 17, 132), (365, 49, 133), (355, 109, 134), (363, 9, 135), (353, 13, 136), (339, 73, 137), (341, 19, 138), (52, 435, 139), (5072, 1, 140), (1971, 3, 141), (1917, 3, 142), (1619, 7, 143), (3051, 4, 144), (6055, 1, 145), (1969, 2, 146), (347, 23, 147), (325, 22, 148), (349, 22, 149), (11332, 3, 150), (309, 4, 151), (10071, 2, 152), (314, 1, 153), (311, 7, 154), (1454, 5, 155), (1438, 2, 156), (952, 4, 157), (590, 7, 158), (303, 6, 159), (954, 4, 160), (1734, 112, 161), (10088, 878, 162), (10087, 1270, 163), (2347, 3, 164), (5341, 4, 165), (1733, 6, 166), (1735, 2, 167), (1755, 2, 168), (1935, 20, 169), (1923, 6, 170), (1887, 1, 171), (1931, 7, 172), (1925, 4, 173), (10129, 10, 174), (1448, 1, 175), (1275, 2, 176), (1271, 1, 177), (4, 1, 178), (1353, 2, 179), (1349, 2, 180), (1351, 2, 181), (10010, 10, 182), (10012, 42, 183), (10045, 1, 184), (10041, 1, 185), (301, 4, 186), (5350, 1, 187), (1267, 1, 188), (8794, 4, 189), (1757, 1, 190), (2165, 1, 191), (4600, 1, 192), (4599, 1, 193), (5325, 3, 194), (5343, 3, 195), (5329, 3, 196), (5376, 2, 197), (5354, 3, 198), (5418, 2, 199), (5340, 2, 200), (10075, 7, 201), (1357, 1, 202), (1355, 1, 203), (1361, 1, 204), (10008, 20, 205), (10043, 1, 206), (313, 2432, 207), (1359, 4, 208), (946, 1, 209), (307, 5, 210), (305, 1, 211), (11323, 1, 212), (783, 1, 213), (4155, 1, 214), (3325, 1, 215), (552, 1, 216), (433, 1, 217), (784, 1, 218), (10999, 1, 219), (3787, 1, 220), (1837, 3, 221), (3853, 36, 222), (2552, 19, 223), (983, 1, 224), (2952, 1, 225), (299, 40, 226), (2713, 1, 227), (9007, 1, 228), (6291, 1, 229), (2402, 1, 230), (3016, 183, 231), (759, 1, 232), (221, 8, 233), (88, 11, 234), (33, 1, 235), (950, 224, 236), (1101, 1, 237), (1139, 1, 238), (1907, 1, 239), (11340, 1, 240), (1542, 2, 241), (8463, 1, 242), (1540, 2, 243), (4589, 1, 244), (1825, 2, 245), (1827, 1, 246), (4605, 1, 247), (4611, 1, 248), (1833, 1, 249), (1854, 2, 250), (10306, 1, 251), (2597, 1, 252), (2591, 1, 253), (2593, 1, 254), (2595, 1, 255), (1121, 5, 256), (1159, 4, 257), (1197, 4, 258), (1071, 4, 259), (1333, 2, 260), (1329, 2, 261), (8901, 1, 262), (1207, 1, 263), (1059, 13, 264), (6568, 1, 265), (1163, 1, 266), (1079, 1, 267), (1127, 1, 268), (1201, 1, 269), (1708, 1, 270), (884, 4471, 271), (1097, 1, 272), (886, 1266, 273), (882, 97, 274), (1169, 1, 275), (1133, 1, 276), (1063, 1, 277), (1061, 23, 278), (853, 1, 279), (892, 9, 280), (995, 8268409, 281), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0)]Working with widgets is interesting and fun!2014-07-24 04:57:15
2014-07-24 09:28:49
From: Haxz
Is there a way to find out which plane you are at? GetTileGlobal doesn't return plane.
2014-07-24 09:42:27
2014-07-24 15:20:34
From: Haxz
Is there a way to find out which plane you are at? GetTileGlobal doesn't return plane.
2014-07-24 18:02:07
From: ineedbot
R_GetPlane returns the plane.
EDIT: Ah jeez didnt see the extra page. Got ninja'd 5 hours later lol…
Here are client rev 55 hooks update. Its within my edited reflection include. Things to note, it has AL_Functions inside, so your scripts do not need to re include it.
2014-07-24 18:05:45
From: Haxz
Wow! How are you faster than the official release.
2014-07-24 18:08:43
From: ineedbot
Well, not really, It wasn't my hooks. I have no idea on getting the hooks myself or updaters.
2014-07-24 18:10:37
From: Haxz
Whose include is this? I saw there's a lot more functions that are not in the official one, that is actually very useful!
2014-07-24 18:12:49
From: ineedbot
Its has Cheddy's hooks, Frement's Antirandoms from his F_Antirandoms, and various of my own functions I made.
2014-07-24 18:15:05
From: Haxz
Why not just suggest it to get into the official reflection include? Those interaction functions are very useful IMO.
2014-07-24 18:23:22
2014-07-24 19:19:49
From: Haxz
I hope I could just run an updater to update all the hooks every Thursday since its "update day" :p
Krazy seems to me is a busy guy and he's not paid to do all these, so can't be active 24/7. I understand that but maybe he can have more people to help on the dev team and updates.
2014-07-25 03:31:42
2014-07-25 03:40:28
2014-07-25 21:14:58
2014-07-25 22:11:39
From: tls
Guys I'm available for some extended hours next week. Let's write an actual include, not this mess of code someone upchucked.
2014-07-25 22:47:23
From: ineedbot
I really enjoy SRL-Reflection-2's structure and code. Easy and clean. Maybe a direct port would be cool. (if possible)
2014-07-25 22:48:32
From: tls
Guys I'm available for some extended hours next week. Let's write an actual include, not this mess of code someone upchucked.
From: ineedbot
I really enjoy SRL-Reflection-2's structure and code. Easy and clean. Maybe a direct port would be cool. (if possible)
2014-07-26 02:01:11
From: tls
Guys I'm available for some extended hours next week. Let's write an actual include, not this mess of code someone upchucked.
2014-07-26 08:31:37
From: klew1102
I can't figure this out input would be appreciated for the duplicate identifier error:
My Problem is that when i run a script to see if i deleted all the duplicate functions in F_AntiRandoms that are also in Wigets.simba
(Not procedure, type, or TInventoryItemArray = Array of TInventoryItem (have tried)) it gets stuck on something like Unknown identifier 'XILES_SHEARS' at line 125 which isn't a function in widgets.simba.
Ill delete the function its under anyway and it'll just continue to say error on the same line even when the line is blank if that matters tried more than once.
Thank you for any help
2014-07-26 08:33:55
Just delete everything to do with f_antirandoms from the script.
I'm having trouble with a lot of the functions beginning with the one, "R_GetWidget," and multiple ones under that. The full error is "[Error] C:\Simba\Includes\F_AntiRandoms.simba(120:10): Duplicate identifier 'R_GETWIDGET' at line 120"
Next after that is "R_GetWidgetText," full error being "[Error] C:\Simba\Includes\F_AntiRandoms.simba(130:10): Duplicate identifier 'R_GETWIDGETTEXT' at line 130"
I'll list one more - "TInventoryItem," full error being "[Error] C:\Simba\Includes\F_AntiRandoms.simba(855:3): Duplicate identifier 'TInventoryItem' at line 855"
2014-07-26 13:44:54
From: Flight
That's a pretty good idea. I also like the layout of Reflection 2, I remember suggesting that at one time but it was shot down.
2014-07-26 14:01:00
2014-07-26 14:13:32
From: Brandon
If you want to reduce memory leaks entirely, Simba would need classes which in Obj-Pascal has destructors OR RAII containers such as ScopeGuards that automatically delete a resource or calls a cleanup function when it goes out of scope.
How do you plan on doing these things without those OR without modifying SMART?
2014-07-26 14:19:38
From: tls
https://github.com/tlsdude/OSR-REF/blob/master/Wrappers/smartref.simba
2014-07-26 14:23:15
From: Olly
https://github.com/Drags111/Kronos Now that's a reflection include. (Because of the interpeter) :P
2014-07-26 17:47:50
From: tls
https://github.com/tlsdude/OSR-REF/blob/master/Wrappers/smartref.simba
2014-07-26 19:20:29
From: Brandon
Though, I don't think leaks in reflection are too much of a big deal seeing as the objects allocated are roughly 4 bytes in size.. Allocating for 24 hours straight, every 100ms, you'd leak at most 3.4mb or 3456000 bytes.
2014-07-27 06:20:11
From: Haxz
I hope I could just run an updater to update all the hooks every Thursday since its "update day" :p
Krazy seems to me is a busy guy and he's not paid to do all these, so can't be active 24/7. I understand that but maybe he can have more people to help on the dev team and updates.
2014-07-27 16:36:56
From: Brandon
:S That's just wrappers. You can easily leak those and it's worse due to the fact that you store ALL the objects upon every call and never delete them per call, but only at the end of the script.
If the script terminates abnormally during execution, you're going to have a problem. If the user stops the script and instead presses terminate because it's taking too long to stop, again you don't have "AddOnTerminate" running and all the objects allocated throughout the entire script leaks. If the script crashes or terminates abnormally/unexpectedly for any reason at all, this would be worse off than handling them on a per call basis.
You're better off freeing the object on a per call basis. This way, if the script terminates unexpectedly, you leak at most 1 function's worth of allocations (whichever function was called last).
Though, I don't think leaks in reflection are too much of a big deal seeing as the objects allocated are roughly 4 bytes in size.. Allocating for 24 hours straight, every 100ms, you'd leak at most 3.4mb or 3456000 bytes.
2014-07-29 11:44:25
From: tls
Of course you are supposed to free them when you are done with them. That is obvious. I'm talking about forcing it to be the scripter that handles some of the objects, because it forces them to actually comprehend what their function calls are doing. For example, I find an npc and keep the pointer in variable x(some kind of TNPC type). I can then call x.getLocation(), without the overhead of searching for the npc in the global npc array using the index/hash/name/id/etc. This will make scripting things like models actually do-able, in access time and manipulation time.
2014-07-30 00:41:18
From: fish1328
This would be a brilliant idea. I had this idea a while back but I thought I would be shot down if I mentioned it :-D This will make the api more efficient and open up more possibilities for the scripter :-)
2014-07-30 11:59:22
2014-07-30 14:49:27
From: Unfold
Hey, are there any plans on completing the anti-randoms in reflection?
2014-07-30 20:49:54
From: Turpinator
BAAAAMMMMM! @R0b0t1;
2014-08-01 05:43:43
2014-08-01 05:47:25
{ 248 Hooks Found By Cheddys Beautiful Updater }
const
ReflectionRevision = 56;
{* Boundary - 9 Hooks *}
Boundary = 'cn';
Boundary_getAlternativeOrientation = 'x';
Boundary_getAlternativeOrientation_Multiplier = -937040557;
Boundary_getBackupRenderable = 'q';
Boundary_getFlags = 'm';
Boundary_getFlags_Multiplier = 484123147;
Boundary_getID = 'l';
Boundary_getID_Multiplier = 527163423;
Boundary_getOrientation = 'g';
Boundary_getOrientation_Multiplier = -252173309;
Boundary_getPlane = 'e';
Boundary_getPlane_Multiplier = -1690874541;
Boundary_getRenderable = 'b';
Boundary_getX = 'v';
Boundary_getX_Multiplier = 775213857;
Boundary_getY = 'i';
Boundary_getY_Multiplier = 289649599;
{* Cache - 3 Hooks *}
Cache = 'fo';
Cache_getCacheableNode = 'e';
Cache_getHashTable = 'g';
Cache_getQueue = 'x';
{* CacheableNode - 2 Hooks *}
CacheableNode = 'fa';
CacheableNode_getNext = 'cf';
CacheableNode_getPrevious = 'cb';
{* Canvas - 1 Hooks *}
Canvas = 'dt';
Canvas_getComponent = 'e';
{* Character - 18 Hooks *}
Character = 'ap';
Character_getAnimation = 'ab';
Character_getAnimation_Multiplier = -664286735;
Character_getCycle = 'az';
Character_getCycle_Multiplier = -656228191;
Character_getHealth = 'au';
Character_getHealth_Multiplier = -1164683157;
Character_getHitCycles = 'ar';
Character_getHitDamages = 'at';
Character_getHitTypes = 'aw';
Character_getInteractingIndex = 'ad';
Character_getInteractingIndex_Multiplier = -260494153;
Character_getMaxHealth = 'ai';
Character_getMaxHealth_Multiplier = -1084415617;
Character_getOrientation = 'bm';
Character_getOrientation_Multiplier = 2079985171;
Character_getOverheadText = 'ah';
Character_getPositionOffset = 'n';
Character_getPositionOffset_Multiplier = 1540541504;
Character_getQueueLength = 'ba';
Character_getQueueLength_Multiplier = 1583408165;
Character_getQueueTraversed = 'bt';
Character_getQueueX = 'br';
Character_getQueueY = 'bj';
Character_getX = 'o';
Character_getX_Multiplier = 1863804961;
Character_getY = 'r';
Character_getY_Multiplier = 598559599;
Character_isInSequence = 'k';
{* ClassData - 3 Hooks *}
ClassData = 'gs';
ClassData_getBytes = 'l';
ClassData_getFields = 'x';
ClassData_getMethods = 'q';
{* Client - 55 Hooks *}
Client = 'client';
Client_getBaseX = 'client.ci';
Client_getBaseX_Multiplier = 1926356683;
Client_getBaseY = 'fj.cm';
Client_getBaseY_Multiplier = -1886502923;
Client_getCameraPitch = 'da.fn';
Client_getCameraPitch_Multiplier = -1057472213;
Client_getCameraX = 'co.fs';
Client_getCameraX_Multiplier = 1664538849;
Client_getCameraY = 'i.fd';
Client_getCameraY_Multiplier = 1289362003;
Client_getCameraYaw = 'x.fz';
Client_getCameraYaw_Multiplier = 1999047161;
Client_getCameraZ = 'u.fw';
Client_getCameraZ_Multiplier = 210529351;
Client_getClient = 'client.v';
Client_getCollisionMaps = 'client.w';
Client_getCurrentLevels = 'client.hu';
Client_getCurrentPointsX = 'cz.ay';
Client_getCurrentPointsY = 'cz.af';
Client_getCurrentViewX = 'cz.aj';
Client_getCurrentViewY = 'cz.aw';
Client_getCurrentViewZ = 'cz.at';
Client_getEnergy = 'client.je';
Client_getEnergy_Multiplier = -1988956557;
Client_getExperiences = 'client.hj';
Client_getGameCycle = 'client.d';
Client_getGameCycle_Multiplier = 1929541161;
Client_getGameState = 'client.j';
Client_getGameState_Multiplier = 998026257;
Client_getGroundItems = 'client.hc';
Client_getLocalNPCs = 'client.bj';
Client_getLocalPlayer = 'f.hb';
Client_getLocalPlayers = 'client.gz';
Client_getLoginState = 'ao.ap';
Client_getLoginState_Multiplier = 1404256151;
Client_getLowestCameraPitch = 'client.fh';
Client_getLowestCameraPitch_Multiplier = 772568593;
Client_getMapAngle = 'client.fp';
Client_getMapAngle_Multiplier = 874203131;
Client_getMapOffset = 'client.de';
Client_getMapOffset_Multiplier = -334762247;
Client_getMapScale = 'client.dm';
Client_getMapScale_Multiplier = -1281832857;
Client_getMaxLevels = 'client.hm';
Client_getMenuActions = 'client.ik';
Client_getMenuCount = 'client.im';
Client_getMenuCount_Multiplier = -1513516277;
Client_getMenuHeight = 'd.iy';
Client_getMenuHeight_Multiplier = 2132142411;
Client_getMenuOptions = 'client.ip';
Client_getMenuWidth = 'cd.if';
Client_getMenuWidth_Multiplier = 726557981;
Client_getMenuX = 'cv.hd';
Client_getMenuX_Multiplier = 658216925;
Client_getMenuY = 'ad.hl';
Client_getMenuY_Multiplier = 815311505;
Client_getMouseX = 'dq.g';
Client_getMouseX_Multiplier = -1050677781;
Client_getMouseY = 'dq.b';
Client_getMouseY_Multiplier = 1333315363;
Client_getNPCIndices = 'client.bu';
Client_getPassword = 'ao.aq';
Client_getPlane = 'eb.hf';
Client_getPlane_Multiplier = -1018405511;
Client_getPlayerSettings = 'en.v';
Client_getRegion = 'g.df';
Client_getTileHeights = 'b.e';
Client_getTileSettings = 'b.v';
Client_getUsername = 'ao.af';
Client_getWeight = 'client.jx';
Client_getWeight_Multiplier = -1141465513;
Client_getWidgetHeights = 'client.lz';
Client_getWidgetNodeTable = 'client.jz';
Client_getWidgetPositionsX = 'client.lp';
Client_getWidgetPositionsY = 'client.lg';
Client_getWidgets = 'ex.e';
Client_getWidgetSettings = 'en.i';
Client_getWidgetWidths = 'client.ll';
Client_isMenuOpen = 'client.hv';
{* CollisionMap - 5 Hooks *}
CollisionMap = 'gb';
CollisionMap_getFlags = 'ac';
CollisionMap_getHeight = 'av';
CollisionMap_getHeight_Multiplier = 36001403;
CollisionMap_getOffsetX = 'ao';
CollisionMap_getOffsetX_Multiplier = -1196359135;
CollisionMap_getOffsetY = 'am';
CollisionMap_getOffsetY_Multiplier = 1900422479;
CollisionMap_getWidth = 'z';
CollisionMap_getWidth_Multiplier = 561162925;
{* FloorDecoration - 6 Hooks *}
FloorDecoration = 'ch';
FloorDecoration_getFlags = 'b';
FloorDecoration_getFlags_Multiplier = -1600600389;
FloorDecoration_getID = 'x';
FloorDecoration_getID_Multiplier = -951274947;
FloorDecoration_getPlane = 'e';
FloorDecoration_getPlane_Multiplier = -1391409611;
FloorDecoration_getRenderable = 'g';
FloorDecoration_getX = 'v';
FloorDecoration_getX_Multiplier = -167860585;
FloorDecoration_getY = 'i';
FloorDecoration_getY_Multiplier = -849579211;
{* HashTable - 5 Hooks *}
HashTable = 'fx';
HashTable_getCurrent = 'g';
HashTable_getHead = 'i';
HashTable_getIndex = 'x';
HashTable_getIndex_Multiplier = 1;
HashTable_getNodes = 'v';
HashTable_getSize = 'e';
HashTable_getSize_Multiplier = 1;
{* Item - 2 Hooks *}
Item = 'n';
Item_getID = 'e';
Item_getID_Multiplier = -1341638203;
Item_getStackSize = 'v';
Item_getStackSize_Multiplier = 238113971;
{* ItemComposite - 9 Hooks *}
ItemComposite = 'ai';
ItemComposite_getGroundActions = 'k';
ItemComposite_getModelColours = 's';
ItemComposite_getModelSizeX = 'ar';
ItemComposite_getModelSizeX_Multiplier = 725725615;
ItemComposite_getModelSizeY = 'az';
ItemComposite_getModelSizeY_Multiplier = -2135039455;
ItemComposite_getModelSizeZ = 'au';
ItemComposite_getModelSizeZ_Multiplier = 332877193;
ItemComposite_getName = 'u';
ItemComposite_getNewModelColours = 'f';
ItemComposite_getWidgetActions = 'n';
ItemComposite_isMembers = 't';
{* ItemLayer - 8 Hooks *}
ItemLayer = 'cs';
ItemLayer_getBottomRenderable = 'g';
ItemLayer_getHeight = 'l';
ItemLayer_getHeight_Multiplier = -2104003827;
ItemLayer_getID = 'q';
ItemLayer_getID_Multiplier = -1822308849;
ItemLayer_getMiddleRenderable = 'x';
ItemLayer_getPlane = 'e';
ItemLayer_getPlane_Multiplier = 628016659;
ItemLayer_getTopRenderable = 'b';
ItemLayer_getX = 'v';
ItemLayer_getX_Multiplier = 252390051;
ItemLayer_getY = 'i';
ItemLayer_getY_Multiplier = 1590436751;
{* LinkedList - 2 Hooks *}
LinkedList = 'fc';
LinkedList_getHead = 'e';
LinkedList_getTail = 'v';
{* Model - 14 Hooks *}
Model = 'cz';
Model_getIndicesLength = 'm';
Model_getIndicesLength_Multiplier = 1;
Model_getIndicesX = 'u';
Model_getIndicesY = 's';
Model_getIndicesZ = 'f';
Model_getTexturedIndicesX = 'p';
Model_getTexturedIndicesY = 'w';
Model_getTexturedIndicesZ = 'y';
Model_getTexturedVerticesX = 'r';
Model_getTexturedVerticesY = 't';
Model_getTexturedVerticesZ = 'k';
Model_getVerticesLength = 'x';
Model_getVerticesLength_Multiplier = 1;
Model_getVerticesX = 'b';
Model_getVerticesY = 'q';
Model_getVerticesZ = 'l';
{* Mouse - 0 Hooks *}
Mouse = 'dq';
{* Node - 3 Hooks *}
Node = 'gc';
Node_getNext = 'eh';
Node_getPrevious = 'et';
Node_getUID = 'de';
{* NPC - 1 Hooks *}
NPC = 'ac';
NPC_getComposite = 'e';
{* NPCComposite - 4 Hooks *}
NPCComposite = 'an';
NPCComposite_getActions = 'o';
NPCComposite_getID = 'x';
NPCComposite_getID_Multiplier = -698898793;
NPCComposite_getLevel = 't';
NPCComposite_getLevel_Multiplier = 546828601;
NPCComposite_getName = 'b';
{* ObjectComposite - 14 Hooks *}
ObjectComposite = 'ay';
ObjectComposite_getActions = 'am';
ObjectComposite_getAnimation = 'n';
ObjectComposite_getAnimation_Multiplier = 775807469;
ObjectComposite_getID = 'm';
ObjectComposite_getID_Multiplier = 162233577;
ObjectComposite_getModelColours = 'h';
ObjectComposite_getModelSizeX = 'ah';
ObjectComposite_getModelSizeX_Multiplier = 1835626283;
ObjectComposite_getModelSizeY = 'an';
ObjectComposite_getModelSizeY_Multiplier = -759918767;
ObjectComposite_getModelSizeZ = 'ay';
ObjectComposite_getModelSizeZ_Multiplier = 2056296707;
ObjectComposite_getModifiedModelColours = 'y';
ObjectComposite_getName = 'f';
ObjectComposite_getSizeX = 'j';
ObjectComposite_getSizeX_Multiplier = -350214567;
ObjectComposite_getSizeY = 'c';
ObjectComposite_getSizeY_Multiplier = -1891926785;
ObjectComposite_getTranslateX = 'ah';
ObjectComposite_getTranslateX_Multiplier = 1835626283;
ObjectComposite_getTranslateY = 'an';
ObjectComposite_getTranslateY_Multiplier = -759918767;
ObjectComposite_getTranslateZ = 'ay';
ObjectComposite_getTranslateZ_Multiplier = 2056296707;
{* Player - 3 Hooks *}
Player = 'i';
Player_getCombatLevel = 'x';
Player_getCombatLevel_Multiplier = 1267881449;
Player_getModel = 'p';
Player_getName = 'e';
{* Projectile - 17 Hooks *}
Projectile = 'q';
Projectile_getCycle = 'l';
Projectile_getCycle_Multiplier = -201790113;
Projectile_getHeight = 'x';
Projectile_getHeight_Multiplier = 1442529535;
Projectile_getHeightOffset = 'a';
Projectile_getRotationX = 'o';
Projectile_getRotationX_Multiplier = -1695650567;
Projectile_getRotationY = 'r';
Projectile_getRotationY_Multiplier = 58041145;
Projectile_getScalar = 'c';
Projectile_getSlope = 'm';
Projectile_getSlope_Multiplier = -166938597;
Projectile_getSpeedX = 'h';
Projectile_getSpeedY = 'j';
Projectile_getSpeedZ = 'd';
Projectile_getStartX = 'i';
Projectile_getStartX_Multiplier = 1684595455;
Projectile_getStartY = 'g';
Projectile_getStartY_Multiplier = 394443799;
Projectile_getTargetDistance = 'u';
Projectile_getTargetDistance_Multiplier = 2048319353;
Projectile_getTargetID = 's';
Projectile_getTargetID_Multiplier = 1164776619;
Projectile_getX = 'p';
Projectile_getY = 'w';
Projectile_isMoving = 'f';
{* Queue - 1 Hooks *}
Queue = 'fi';
Queue_getHead = 'e';
{* Region - 2 Hooks *}
Region = 'cj';
Region_getGroundObjects = 'm';
Region_getGroundTiles = 'b';
{* Renderable - 1 Hooks *}
Renderable = 'bu';
Renderable_getHeight = 'cn';
Renderable_getHeight_Multiplier = -1487602713;
{* SceneObject - 12 Hooks *}
SceneObject = 'cx';
SceneObject_getFlags = 'w';
SceneObject_getFlags_Multiplier = 370079205;
SceneObject_getID = 'p';
SceneObject_getID_Multiplier = -678823417;
SceneObject_getOffsetX = 'l';
SceneObject_getOffsetX_Multiplier = 1301598393;
SceneObject_getOffsetY = 'u';
SceneObject_getOffsetY_Multiplier = 627714753;
SceneObject_getOrientation = 'b';
SceneObject_getOrientation_Multiplier = 1223886039;
SceneObject_getPlane = 'e';
SceneObject_getPlane_Multiplier = 545832231;
SceneObject_getRelativeX = 'q';
SceneObject_getRelativeX_Multiplier = -663829119;
SceneObject_getRelativeY = 'm';
SceneObject_getRelativeY_Multiplier = 131709373;
SceneObject_getRenderable = 'x';
SceneObject_getX = 'i';
SceneObject_getX_Multiplier = -691439605;
SceneObject_getY = 'g';
SceneObject_getY_Multiplier = 183837179;
SceneObject_getZ = 'v';
SceneObject_getZ_Multiplier = 2067512927;
{* Stream - 2 Hooks *}
Stream = 'dk';
Stream_getOffset = 'v';
Stream_getOffset_Multiplier = -1354992167;
Stream_getPayload = 'e';
{* StringStorage - 0 Hooks *}
StringStorage = 'ep';
{* Tile - 8 Hooks *}
Tile = 'ca';
Tile_getBoundary = 'q';
Tile_getFloorDecoration = 'm';
Tile_getItemLayer = 'u';
Tile_getPlane = 'g';
Tile_getPlane_Multiplier = 547928651;
Tile_getRSObjects = 'f';
Tile_getWall = 'l';
Tile_getX = 'v';
Tile_getX_Multiplier = 764314491;
Tile_getY = 'i';
Tile_getY_Multiplier = -1401052379;
{* Wall - 11 Hooks *}
Wall = 'ck';
Wall_getBackupRenderable = 'm';
Wall_getFlags = 's';
Wall_getFlags_Multiplier = -506221315;
Wall_getHeight = 'x';
Wall_getHeight_Multiplier = 1338837553;
Wall_getID = 'u';
Wall_getID_Multiplier = -334757297;
Wall_getOrientation = 'g';
Wall_getOrientation_Multiplier = -847305749;
Wall_getPlane = 'e';
Wall_getPlane_Multiplier = 624801845;
Wall_getRelativeX = 'b';
Wall_getRelativeX_Multiplier = -1589564543;
Wall_getRelativeY = 'q';
Wall_getRelativeY_Multiplier = -1421118309;
Wall_getRenderable = 'l';
Wall_getX = 'v';
Wall_getX_Multiplier = -1484786817;
Wall_getY = 'i';
Wall_getY_Multiplier = 2065878649;
{* Widget - 26 Hooks *}
Widget = 'ex';
Widget_getActions = 'bi';
Widget_getWidth = 'o';
Widget_getWidth_Multiplier = 92871183;
Widget_getBorderThickness = 'at';
Widget_getBorderThickness_Multiplier = -2118347447;
Widget_getBoundsIndex = 'dq';
Widget_getBoundsIndex_Multiplier = 1496016673;
Widget_getChildren = 'dp';
Widget_getContentIDs = 'dh';
Widget_getID = 'p';
Widget_getID_Multiplier = 628348239;
Widget_getIndex = 'w';
Widget_getIndex_Multiplier = -1843358029;
Widget_getItemID = 'db';
Widget_getItemID_Multiplier = 1802203577;
Widget_getItemStack = 'di';
Widget_getItemStack_Multiplier = -82348753;
Widget_getName = 'da';
Widget_getOpcodes = 'dw';
Widget_getParent = 'ba';
Widget_getParentID = 't';
Widget_getParentID_Multiplier = -2032118225;
Widget_getRelativeX = 'y';
Widget_getRelativeX_Multiplier = 432723653;
Widget_getRelativeY = 'a';
Widget_getRelativeY_Multiplier = 1728909731;
Widget_getScrollX = 'n';
Widget_getScrollX_Multiplier = -637248725;
Widget_getScrollY = 'z';
Widget_getScrollY_Multiplier = 1586549073;
Widget_getSpritesX = 'bk';
Widget_getSpritesY = 'bq';
Widget_getStackSizes = 'df';
Widget_getText = 'bd';
Widget_getHeight = 'r';
Widget_getHeight_Multiplier = 866589371;
Widget_getX = 'd';
Widget_getX_Multiplier = 598700569;
Widget_getY = 'x';
Widget_getY_Multiplier = -1267767979;
Widget_isHidden = 'k';
{* WidgetNode - 1 Hooks *}
WidgetNode = 'g';
WidgetNode_getID = 'e';
WidgetNode_getID_Multiplier = 1490475817;
2014-08-01 06:51:42
2014-08-01 12:13:28
2014-08-02 01:04:36
2014-08-02 01:13:29
2014-08-02 05:01:11
From: Krazy_Meerkat
Frement's LAPE include has been on GitHub for ages now, I don't have enough arms to update this include, work on a new updater, maintain hooks and also re-write everything with documentation ok. Anyone impatient about a re-write is welcome to finish it.
2014-08-04 20:03:53
2014-08-04 20:51:42
From: ineedbot
Soo, is anyone developing any of their own forks of reflection? I was thinking of making something of my own. (from looking off reflection-2's) Try and port all the code to a useable form for OSRS. Thanks to Cheddy's hooks, I will try make use of the all. idk if my fork will be as good as others, but I'll definitely try.
It'll be good practice as I like learn new things.
2014-08-04 23:35:15
From: tls
I am. Working on making it pretty from the bottom up.
type TRSPlayer = record
Name, OverheadText : String;
Level, CurrentHP, MaxHP, Animation, Interacting, Orientation, Plane : Integer;
InCombat : boolean;
Tile, TileWalkQueue : TPoint;
end;
TRSPlayerArray = array of TRSPlayer;
function R_GetAllRSPlayers: TRSPlayerArray;
var
i, j, PlayerCount, Ref, PlayerName, Overhead, x, y, LoopCycle : Integer;
begin
PlayerCount := SmartGetFieldArraySize(SmartCurrentTarget, 0, Client_getLocalPlayers, 0);
for i:=0 to PlayerCount-1 do begin
Ref := SmartGetFieldArrayObject(SmartCurrentTarget, 0, Client_getLocalPlayers, i);
if (Ref <= 0) then
Continue;
Inc(j);
SetLength(Result, j);
PlayerName := SmartGetFieldObject(SmartCurrentTarget, Ref, Player_getName);
Overhead := SmartGetFieldObject(SmartCurrentTarget, Ref, Character_getOverheadText);
x := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getBaseX)*Client_getBaseX_Multiplier;
y := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getBaseY)*Client_getBaseY_Multiplier;
LoopCycle := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getGameCycle)*Client_getGameCycle_Multiplier;
with Result[j-1] do begin
Level := SmartGetFieldInt(SmartCurrentTarget, Ref, Player_getCombatLevel)*Player_getCombatLevel_Multiplier;
CurrentHP := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getHealth)*Character_getHealth_Multiplier;
MaxHP := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getMaxHealth)*Character_getMaxHealth_Multiplier;
Animation := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getAnimation)*Character_getAnimation_Multiplier;
Interacting := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getInteractingIndex)*Character_getInteractingIndex_Multiplier;
Orientation := Round(FixD(180 + (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getOrientation)*Character_getOrientation_Multiplier*45)/2048));
Plane := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getPlane)*Client_getPlane_Multiplier; //uses client's plane it was found on...
Name := R_GetJavaString(PlayerName, 512);
OverheadText := R_GetJavaString(Overhead, 512);
InCombat := (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getCycle) * Character_getCycle_Multiplier) > LoopCycle;
Tile := Point(x + (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getX) * Character_getX_Multiplier) div 128, y + (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getY) * Character_getY_Multiplier) div 128);
TileWalkQueue := Point(SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getQueueX), SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getQueueY));
end;
SmartFreeObject(SmartCurrentTarget, PlayerName);
SmartFreeObject(SmartCurrentTarget, Ref);
SmartFreeObject(SmartCurrentTarget, Overhead);
end;
end;2014-08-04 23:46:26
2014-08-05 17:26:46
type TRSNPC = record
Name, OverheadText : String;
Actions : TStringArray;
ID, Index, Level, CurrentHP, MaxHP, Animation, Interacting, Orientation, Plane : Integer;
InCombat : boolean;
Tile, TileWalkQueue : TRSTile;
end;
TRSNPCArray = array of TRSNPC;
function R_GetRSNPCActions(NPC_Comp:Integer):TStringArray;
var i, j, actionCount, _string : integer;
begin
ActionCount := SmartGetFieldArraySize(SmartCurrentTarget, NPC_Comp, NPCComposite_getActions, 0);
for i:=0 to ActionCount do begin
_string := SmartGetFieldArrayObject(SmartCurrentTarget, NPC_Comp, NPCComposite_getActions, i);
if(_string <= 0)then
continue;
inc(j);
SetLength(Result, j);
result[j-1] := trim(R_GetJavaString(_string, 512));
SmartFreeObject(SmartCurrentTarget, _string);
end;
end;
function R_GetAllRSNPCs: TRSNPCArray;
var
i, j, NPCCount, Ref, Def, NPCName, Overhead, x, y, LoopCycle : Integer;
begin
NPCCount := SmartGetFieldArraySize(SmartCurrentTarget, 0, Client_getLocalNPCs, 0);
for i:=0 to NPCCount-1 do begin
Ref := SmartGetFieldArrayObject(SmartCurrentTarget, 0, Client_getLocalNPCs, i);
if (Ref <= 0) then
Continue;
Def := SmartGetFieldObject(SmartCurrentTarget, Ref, NPC_getComposite);
Inc(j);
SetLength(Result, j);
NPCName := SmartGetFieldObject(SmartCurrentTarget, Def, NPCComposite_getName);
Overhead := SmartGetFieldObject(SmartCurrentTarget, Ref, Character_getOverheadText);
x := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getBaseX)*Client_getBaseX_Multiplier;
y := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getBaseY)*Client_getBaseY_Multiplier;
LoopCycle := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getGameCycle)*Client_getGameCycle_Multiplier;
with Result[j-1] do begin
Actions := R_GetRSNPCActions(Def);
Plane := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getPlane)*Client_getPlane_Multiplier; //uses client's plane it was found on...
Interacting := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getInteractingIndex)*Character_getInteractingIndex_Multiplier;
Orientation := Round(FixD(180 + (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getOrientation)*Character_getOrientation_Multiplier*45)/2048));
CurrentHP := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getHealth)*Character_getHealth_Multiplier;
MaxHP := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getMaxHealth)*Character_getMaxHealth_Multiplier;
Level := SmartGetFieldInt(SmartCurrentTarget, Def, NPCComposite_getLevel) * NPCComposite_getLevel_Multiplier;;
InCombat := (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getCycle) * Character_getCycle_Multiplier) > LoopCycle;
Tile := Point(x + (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getX) * Character_getX_Multiplier) div 128, y + (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getY) * Character_getY_Multiplier) div 128);
TileWalkQueue := Point(SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getQueueX), SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getQueueY));
Index := i;
Name := trim(R_GetJavaString(NPCName, 512));
OverheadText := trim(R_GetJavaString(Overhead, 512));
Animation:= SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getAnimation) * Character_getAnimation_Multiplier;
ID := SmartGetFieldInt(SmartCurrentTarget, Def, NPCComposite_getID) * NPCComposite_getID_Multiplier;
end;
SmartFreeObject(SmartCurrentTarget, NPCName);
SmartFreeObject(SmartCurrentTarget, Ref);
SmartFreeObject(SmartCurrentTarget, Def);
SmartFreeObject(SmartCurrentTarget, Overhead);
end;
end;function R_GetRSEquipItemAtSlot(_Slot:integer):TRSEquipItem;
var
_Equipment, _Inventory, _InventorySlot, _ItemID, _ItemQuantity, j{, _Name}: Integer;
_items : TRSEquipItemArray;
begin
GameTab(tab_Equip);
_Equipment := R_GetWidgetChildRef(387, _Slot);//_slot can be between 6 and 16
for _InventorySlot := 0 to 2 do begin
_Inventory := SmartGetFieldArrayObject(SmartCurrentTarget, _Equipment, Widget_getChildren, _InventorySlot);
_ItemID := SmartGetFieldInt(SmartCurrentTarget, _Inventory, Widget_getItemID)*Widget_getItemID_Multiplier;
inc(j);
SetLength(_items, j);
_ItemQuantity := SmartGetFieldInt(SmartCurrentTarget, _Inventory, Widget_getItemStack)*Widget_getItemStack_Multiplier;
//_Name := SmartGetFieldArrayObject(SmartCurrentTarget, _Inventory, Widget_getName, _InventorySlot);
with _items[j-1] do begin
ID := _ItemID;
StackSize := _ItemQuantity;
Slot := _Slot;
//Name := Trim(R_GetJavaString(_Name, 512));
//Actions := R_GetRSInvItemActions(_Inventory, _InventorySlot);
end;
//SmartFreeObject(SmartCurrentTarget, _Name);
end;
SmartFreeObject(SmartCurrentTarget, _Inventory);
result := Null_RSEquipItem;
for j:=0 to high(_items) do begin
if (_items[j].ID > 0)then begin
result := _items[j];
end;
end;
end;Code is really half-assed right now, but its a start.2014-08-16 01:00:57
2014-08-16 08:40:07
2014-08-16 15:42:54
From: ineedbot
Sweet, I cant wait to see it complete!
So far I came up with thistype TRSPlayer = record
Name, OverheadText : String;
Level, CurrentHP, MaxHP, Animation, Interacting, Orientation, Plane : Integer;
InCombat : boolean;
Tile, TileWalkQueue : TPoint;
end;
TRSPlayerArray = array of TRSPlayer;
function R_GetAllRSPlayers: TRSPlayerArray;
var
i, j, PlayerCount, Ref, PlayerName, Overhead, x, y, LoopCycle : Integer;
begin
PlayerCount := SmartGetFieldArraySize(SmartCurrentTarget, 0, Client_getLocalPlayers, 0);
for i:=0 to PlayerCount-1 do begin
Ref := SmartGetFieldArrayObject(SmartCurrentTarget, 0, Client_getLocalPlayers, i);
if (Ref <= 0) then
Continue;
Inc(j);
SetLength(Result, j);
PlayerName := SmartGetFieldObject(SmartCurrentTarget, Ref, Player_getName);
Overhead := SmartGetFieldObject(SmartCurrentTarget, Ref, Character_getOverheadText);
x := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getBaseX)*Client_getBaseX_Multiplier;
y := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getBaseY)*Client_getBaseY_Multiplier;
LoopCycle := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getGameCycle)*Client_getGameCycle_Multiplier;
with Result[j-1] do begin
Level := SmartGetFieldInt(SmartCurrentTarget, Ref, Player_getCombatLevel)*Player_getCombatLevel_Multiplier;
CurrentHP := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getHealth)*Character_getHealth_Multiplier;
MaxHP := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getMaxHealth)*Character_getMaxHealth_Multiplier;
Animation := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getAnimation)*Character_getAnimation_Multiplier;
Interacting := SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getInteractingIndex)*Character_getInteractingIndex_Multiplier;
Orientation := Round(FixD(180 + (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getOrientation)*Character_getOrientation_Multiplier*45)/2048));
Plane := SmartGetFieldInt(SmartCurrentTarget, 0, Client_getPlane)*Client_getPlane_Multiplier; //uses client's plane it was found on...
Name := R_GetJavaString(PlayerName, 512);
OverheadText := R_GetJavaString(Overhead, 512);
InCombat := (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getCycle) * Character_getCycle_Multiplier) > LoopCycle;
Tile := Point(x + (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getX) * Character_getX_Multiplier) div 128, y + (SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getY) * Character_getY_Multiplier) div 128);
TileWalkQueue := Point(SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getQueueX), SmartGetFieldInt(SmartCurrentTarget, Ref, Character_getQueueY));
end;
SmartFreeObject(SmartCurrentTarget, PlayerName);
SmartFreeObject(SmartCurrentTarget, Ref);
SmartFreeObject(SmartCurrentTarget, Overhead);
end;
end;
All the hooks work and everything is accurate, however CurrentHP and MaxHP return 0 for some reason. Also I'm unsure if TileWalkQueue is doing anything. Only returning (-1, -1)…
function R_IsWalking(npc: TCharacter):boolean;
begin
Result := (SmartGetFieldInt(SmartCurrentTarget, npc.objectHash, Character_getQueueLength) * Character_getQueueLength_Multiplier) > 0;
end;
2014-08-19 17:32:15
From: lotery33
I'm getting the
Exception in Script: Operator expected at line 446, column 3 in file "C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Tiles.simba"
error, I downloaded the latest version
From: Harrier
Read the instructions for setting up OSRS-SRL. You missed a step :p
2014-08-19 17:39:12
From: iEatApples
I'm sorry to ask, but I'm getting the exact same error and I just can't find what I've missed. Went over several guides multiple times. Could anyone possibly help me further? :\
2014-08-19 18:31:44
From: Harrier
Interpreter step.
2014-08-20 16:33:55
_players := R_GetAllRSPlayers;
myIndex := R_GetClientIndex;
myName := R_GetMyName;
for i:=0 to high(_players) do begin
if(pos(lowercase(myName), lowercase(_players[i].OverheadText)) > 0)then begin
playSound( 'C:\Windows\Media\Windows Notify Messaging.wav' );
writeln('Player: '''+_players[i].name+''' said your name! They said: '''+_players[i].OverheadText+'''');
end else begin
if(_players[i].Interacting = myIndex)then begin
playSound( 'C:\Windows\Media\Windows Notify Messaging.wav' );
writeln('Player: '''+_players[i].name+''' is following you!');
end else begin
FoundCase := false;
for h:=0 to high(R_NotifyOnPlayerTalkList) do begin
if(pos(lowercase(R_NotifyOnPlayerTalkList[h]), lowercase(_players[i].OverheadText)) > 0) and not FoundCase then begin
playSound( 'C:\Windows\Media\Windows Notify Messaging.wav' );
writeln('Player: '''+_players[i].name+''' said the word '''+R_NotifyOnPlayerTalkList[h]+'''! They said: '''+_players[i].OverheadText+'''');
FoundCase := true;
end;
end;
end;
end;
end;Player: '****' said your name! They said: '*** hello??'
Player: '****' said your name! They said: '*** are you there?'
Player: '***' said the word 'bot'! They said: 'Are you a bot?'2014-08-20 16:45:31
2014-08-20 17:08:33
From: goswag
Greetings fellow OSRS players! I've noticed a problem when i run the Indeedbot's AIO fisher at monkfish, it just blocks itself. I've spoke with the creator and told me nothing is wrong with the script and that i should post this here, as it is something wrong with the include. Anyone can help here?
2014-08-20 17:29:00
From: goswag
Greetings fellow OSRS players! I've noticed a problem when i run the Indeedbot's AIO fisher at monkfish, it just blocks itself. I've spoke with the creator and told me nothing is wrong with the script and that i should post this here, as it is something wrong with the include. Anyone can help here?
2014-08-21 00:49:41
From: goswag
I've spoke with the creator and told me nothing is wrong with the script and that i should post this here
From: ineedbot
Ive been doing little to no work on my scripts, ive been working on making my own include for reflection.. Now, when you mean by 'blocked' do you mean the randoms events?
{*Starting Deob*
* Starting Method Removal*
* 2457/4158 methods removed*
* Method Removal Finished*
* Starting Control Flow Correction*
* 1466 methods constructed*
* 2991 methods removed*
* Control Flow Correction Finished*
* Starting Arithmetic Deob*
* 150/212 expressions modified*
* Arithmetic Deob Finished*
* Creating Jar*
* Finished Jar*
*Ending Deob*}That marks a big milestone for the updater because now, we're ready to analyse! This takes us one step closer to expanding the Anti-Randoms ;)
2014-08-21 09:49:33
2014-08-21 09:54:09
From: ineedbot
Ive been doing little to no work on my scripts, ive been working on making my own include for reflection (mainly just the anti-random part of it (most randoms are complete), the rest is complete) (idk if i should even release it…). But as far as I know the script is full functionable if this include is working.
Now, when you mean by 'blocked' do you mean the randoms events? If so, you came to the right place to talk about it. Scripts are not responsible for solving the random events, it is the include's job. Correct me if im wrong but, once Krazy gots the updater perfected, he will work on the random solvers.
2014-09-04 11:18:39
{ 209 Hooks Found By Cheddys Beautiful Updater }
const
ReflectionRevision = 58;
{* BoundaryObject - 9 Hooks *}
BoundaryObject = 'cj';
BoundaryObject_getAlternativeOrientation = 'd';
BoundaryObject_getAlternativeOrientation_Multiplier = -1515667875;
BoundaryObject_getBackupRenderable = 'v';
BoundaryObject_getFlags = 'j';
BoundaryObject_getFlags_Multiplier = 925559837;
BoundaryObject_getID = 'z';
BoundaryObject_getID_Multiplier = -101908655;
BoundaryObject_getOrientation = 'e';
BoundaryObject_getOrientation_Multiplier = 843487795;
BoundaryObject_getPlane = 't';
BoundaryObject_getPlane_Multiplier = -1666421637;
BoundaryObject_getRenderable = 'n';
BoundaryObject_getX = 's';
BoundaryObject_getX_Multiplier = -1089886639;
BoundaryObject_getY = 'f';
BoundaryObject_getY_Multiplier = 1982254941;
{* Buffer - 2 Hooks *}
Buffer = 'db';
Buffer_getOffset = 's';
Buffer_getOffset_Multiplier = 1042478381;
Buffer_getPayload = 't';
{* Cache - 5 Hooks *}
Cache = 'fy';
Cache_getCacheableNode = 't';
Cache_getHashTable = 'e';
Cache_getQueue = 'd';
Cache_getRemaining = 'f';
Cache_getRemaining_Multiplier = 1;
Cache_getSize = 's';
Cache_getSize_Multiplier = 1;
{* CacheableNode - 2 Hooks *}
CacheableNode = 'fe';
CacheableNode_getNextCacheable = 'cp';
CacheableNode_getPreviousCacheable = 'cx';
{* Canvas - 1 Hooks *}
Canvas = 'dz';
Canvas_getComponent = 't';
{* Character - 17 Hooks *}
Character = 'ae';
Character_getAnimation = 'ap';
Character_getAnimation_Multiplier = 1281463967;
Character_getCombatCycle = 'ag';
Character_getCombatCycle_Multiplier = 1612466433;
Character_getHealth = 'au';
Character_getHealth_Multiplier = 2026047803;
Character_getHitCycles = 'aa';
Character_getHitDamages = 'at';
Character_getHitTypes = 'av';
Character_getInteractingIndex = 'ay';
Character_getInteractingIndex_Multiplier = 189973027;
Character_getMaxHealth = 'aj';
Character_getMaxHealth_Multiplier = 1042698779;
Character_getOrientation = 'bm';
Character_getOrientation_Multiplier = -1991653213;
Character_getQueueLength = 'bj';
Character_getQueueLength_Multiplier = 604519285;
Character_getQueueTraversed = 'bw';
Character_getQueueX = 'bs';
Character_getQueueY = 'bb';
Character_getText = 'ax';
Character_getX = 'k';
Character_getX_Multiplier = -1912652009;
Character_getY = 'b';
Character_getY_Multiplier = 1159505345;
Character_isInSequence = 'ar';
{* Client - 53 Hooks *}
Client = 'client';
Client_getBaseX = 'w.cd';
Client_getBaseX_Multiplier = -568870037;
Client_getBaseY = 'e.cy';
Client_getBaseY_Multiplier = -635953723;
Client_getCameraPitch = 'bk.fa';
Client_getCameraPitch_Multiplier = 1426250829;
Client_getCameraX = 'w.ff';
Client_getCameraX_Multiplier = -998054749;
Client_getCameraY = 'g.fo';
Client_getCameraY_Multiplier = 270638187;
Client_getCameraYaw = 'f.fu';
Client_getCameraYaw_Multiplier = 573879485;
Client_getCameraZ = 'dy.fb';
Client_getCameraZ_Multiplier = -2115906345;
Client_getCanvas = 'p.po';
Client_getCollisionMaps = 'client.w';
Client_getEnergy = 'client.jv';
Client_getEnergy_Multiplier = -758662925;
Client_getExperiences = 'client.hu';
Client_getGameCycle = 'client.p';
Client_getGameCycle_Multiplier = 1234794817;
Client_getGameState = 'client.l';
Client_getGameState_Multiplier = -1320666373;
Client_getGroundItems = 'client.hm';
Client_getItemCompositeCache = 'aj.e';
Client_getItemContainerTable = 'w.t';
Client_getLevels = 'client.ht';
Client_getLocalNPCs = 'client.bb';
Client_getLocalPlayer = 'cr.hf';
Client_getLocalPlayers = 'client.ga';
Client_getLoginState = 'aw.ae';
Client_getLoginState_Multiplier = 76594955;
Client_getMapAngle = 'client.fq';
Client_getMapAngle_Multiplier = -482144205;
Client_getMapOffset = 'client.df';
Client_getMapOffset_Multiplier = 816991303;
Client_getMapScale = 'client.dg';
Client_getMapScale_Multiplier = 1186981241;
Client_getMenuActions = 'client.ik';
Client_getMenuCount = 'client.ak';
Client_getMenuCount_Multiplier = 1851881611;
Client_getMenuHeight = 'ah.io';
Client_getMenuHeight_Multiplier = -1940027677;
Client_getMenuOptions = 'client.iq';
Client_getMenuWidth = 'cf.im';
Client_getMenuWidth_Multiplier = -497476525;
Client_getMenuX = 'cz.he';
Client_getMenuX_Multiplier = -1898904481;
Client_getMenuY = 'f.hx';
Client_getMenuY_Multiplier = -121628793;
Client_getNPCCompositeCache = 'ar.f';
Client_getNPCIndices = 'client.bq';
Client_getObjectCompositeCache = 'aq.e';
Client_getPassword = 'aw.az';
Client_getPlane = 'h.hq';
Client_getPlane_Multiplier = 892241573;
Client_getRealLevels = 'client.hp';
Client_getRegion = 'e.dk';
Client_getSettings = 'ei.s';
Client_getTileHeights = 'n.t';
Client_getTileSettings = 'n.s';
Client_getUsername = 'aw.am';
Client_getValidWidgets = 'ew.s';
Client_getWeight = 'client.jz';
Client_getWeight_Multiplier = 906057103;
Client_getWidgetBoundsHeight = 'client.lb';
Client_getWidgetBoundsWidth = 'client.lc';
Client_getWidgetBoundsX = 'client.lv';
Client_getWidgetBoundsY = 'client.lk';
Client_getWidgetNodeTable = 'client.jb';
Client_getWidgets = 'ew.t';
Client_getWidgetSettings = 'ei.f';
Client_getWidgetVarps = 'ei.f';
Client_isMenuOpen = 'client.hr';
{* CollisionMap - 1 Hooks *}
CollisionMap = 'go';
CollisionMap_getFlags = 'ab';
{* FloorObject - 6 Hooks *}
FloorObject = 'co';
FloorObject_getFlags = 'n';
FloorObject_getFlags_Multiplier = 91978925;
FloorObject_getID = 'd';
FloorObject_getID_Multiplier = -2054573615;
FloorObject_getPlane = 't';
FloorObject_getPlane_Multiplier = 1678696827;
FloorObject_getRenderable = 'e';
FloorObject_getX = 's';
FloorObject_getX_Multiplier = -421149461;
FloorObject_getY = 'f';
FloorObject_getY_Multiplier = -227813017;
{* HashTable - 5 Hooks *}
HashTable = 'ft';
HashTable_getCurrent = 'e';
HashTable_getCurrentIndex = 'd';
HashTable_getCurrentIndex_Multiplier = 1;
HashTable_getHead = 'f';
HashTable_getNodes = 's';
HashTable_getSize = 't';
HashTable_getSize_Multiplier = 1;
{* Item - 2 Hooks *}
Item = 'o';
Item_getID = 't';
Item_getID_Multiplier = 1375185025;
Item_getStackSize = 's';
Item_getStackSize_Multiplier = -1465831673;
{* ItemComposite - 4 Hooks *}
ItemComposite = 'aj';
ItemComposite_getGroundActions = 'i';
ItemComposite_getName = 'u';
ItemComposite_getWidgetActions = 'o';
ItemComposite_isMembers = 'h';
{* ItemContainer - 2 Hooks *}
ItemContainer = 'w';
ItemContainer_getIDs = 's';
ItemContainer_getStackSizes = 'f';
{* ItemLayer - 8 Hooks *}
ItemLayer = 'cs';
ItemLayer_getBottomRenderable = 'e';
ItemLayer_getHeight = 'z';
ItemLayer_getHeight_Multiplier = -817560073;
ItemLayer_getID = 'v';
ItemLayer_getID_Multiplier = 116687793;
ItemLayer_getMiddleRenderable = 'd';
ItemLayer_getPlane = 't';
ItemLayer_getPlane_Multiplier = 1919008493;
ItemLayer_getTopRenderable = 'n';
ItemLayer_getX = 's';
ItemLayer_getX_Multiplier = 190476239;
ItemLayer_getY = 'f';
ItemLayer_getY_Multiplier = 1036270037;
{* LinkedList - 2 Hooks *}
LinkedList = 'fl';
LinkedList_getHead = 't';
LinkedList_getTail = 's';
{* Model - 12 Hooks *}
Model = 'cc';
Model_getIndicesX = 'u';
Model_getIndicesY = 'g';
Model_getIndicesZ = 'a';
Model_getTexturedIndicesX = 'c';
Model_getTexturedIndicesY = 'w';
Model_getTexturedIndicesZ = 'l';
Model_getTexturedVerticesX = 'u';
Model_getTexturedVerticesY = 'g';
Model_getTexturedVerticesZ = 'a';
Model_getVerticesX = 'n';
Model_getVerticesY = 'v';
Model_getVerticesZ = 'z';
{* Node - 3 Hooks *}
Node = 'gm';
Node_getNext = 'em';
Node_getPrevious = 'eh';
Node_getUID = 'df';
{* NPC - 1 Hooks *}
NPC = 'ab';
NPC_getComposite = 't';
{* NPCComposite - 7 Hooks *}
NPCComposite = 'ar';
NPCComposite_getActions = 'k';
NPCComposite_getCombatLevel = 'h';
NPCComposite_getCombatLevel_Multiplier = 569378961;
NPCComposite_getID = 'd';
NPCComposite_getID_Multiplier = 903407553;
NPCComposite_getName = 'n';
NPCComposite_getSettingID = 'ah';
NPCComposite_getSettingID_Multiplier = 722717255;
NPCComposite_getTransformIDs = 'ao';
NPCComposite_getVarBitID = 'ae';
NPCComposite_getVarBitID_Multiplier = 702885197;
{* ObjectComposite - 2 Hooks *}
ObjectComposite = 'aq';
ObjectComposite_getActions = 'af';
ObjectComposite_getName = 'a';
{* Player - 3 Hooks *}
Player = 'f';
Player_getCombatLevel = 'd';
Player_getCombatLevel_Multiplier = 1066957001;
Player_getModel = 'c';
Player_getName = 't';
{* Queue - 1 Hooks *}
Queue = 'fx';
Queue_getHead = 't';
{* Region - 2 Hooks *}
Region = 'cb';
Region_getObjects = 'j';
Region_getTiles = 'n';
{* Renderable - 1 Hooks *}
Renderable = 'bq';
Renderable_getModelHeight = 'cj';
Renderable_getModelHeight_Multiplier = -698968837;
{* RSObject - 12 Hooks *}
RSObject = 'cm';
RSObject_getFlags = 'w';
RSObject_getFlags_Multiplier = 1203732819;
RSObject_getHeight = 's';
RSObject_getHeight_Multiplier = -1795351697;
RSObject_getID = 'c';
RSObject_getID_Multiplier = -1736250779;
RSObject_getOrientation = 'n';
RSObject_getOrientation_Multiplier = 1933292693;
RSObject_getPlane = 't';
RSObject_getPlane_Multiplier = 762681757;
RSObject_getRelativeX = 'v';
RSObject_getRelativeX_Multiplier = -767162703;
RSObject_getRelativeY = 'j';
RSObject_getRelativeY_Multiplier = 101039943;
RSObject_getRenderable = 'd';
RSObject_getSizeX = 'z';
RSObject_getSizeX_Multiplier = 1942425537;
RSObject_getSizeY = 'u';
RSObject_getSizeY_Multiplier = 1814654745;
RSObject_getX = 'f';
RSObject_getX_Multiplier = 1837351411;
RSObject_getY = 'e';
RSObject_getY_Multiplier = 195040881;
{* Tile - 8 Hooks *}
Tile = 'cw';
Tile_getBoundaryObject = 'v';
Tile_getFloorObject = 'j';
Tile_getItemLayer = 'u';
Tile_getPlane = 'e';
Tile_getPlane_Multiplier = 1693898871;
Tile_getRSObjects = 'a';
Tile_getWall = 'z';
Tile_getX = 's';
Tile_getX_Multiplier = -833139785;
Tile_getY = 'f';
Tile_getY_Multiplier = -985522581;
{* Wall - 11 Hooks *}
Wall = 'cn';
Wall_getBackupRenderable = 'j';
Wall_getFlags = 'g';
Wall_getFlags_Multiplier = -153029915;
Wall_getHeight = 'd';
Wall_getHeight_Multiplier = -1238977827;
Wall_getID = 'u';
Wall_getID_Multiplier = 1278767611;
Wall_getOrientation = 'e';
Wall_getOrientation_Multiplier = 1930387639;
Wall_getPlane = 't';
Wall_getPlane_Multiplier = 637314477;
Wall_getRelativeX = 'n';
Wall_getRelativeX_Multiplier = 337723027;
Wall_getRelativeY = 'v';
Wall_getRelativeY_Multiplier = -1850897549;
Wall_getRenderable = 'z';
Wall_getX = 's';
Wall_getX_Multiplier = -366351375;
Wall_getY = 'f';
Wall_getY_Multiplier = 1317694817;
{* Widget - 26 Hooks *}
Widget = 'ew';
Widget_getActions = 'bh';
Widget_getBorderThickness = 'at';
Widget_getBorderThickness_Multiplier = 1107949007;
Widget_getBoundsIndex = 'dq';
Widget_getBoundsIndex_Multiplier = -1419799283;
Widget_getChildren = 'dt';
Widget_getContentIDs = 'dr';
Widget_getHeight = 'b';
Widget_getHeight_Multiplier = -1971283087;
Widget_getID = 'a';
Widget_getID_Multiplier = 640678563;
Widget_getIndex = 'c';
Widget_getIndex_Multiplier = -1751616003;
Widget_getItemID = 'du';
Widget_getItemID_Multiplier = 802088521;
Widget_getLoopCycleStatus = 'dg';
Widget_getLoopCycleStatus_Multiplier = -1404242157;
Widget_getName = 'bv';
Widget_getRelativeX = 'k';
Widget_getRelativeX_Multiplier = -764139897;
Widget_getRelativeY = 'b';
Widget_getRelativeY_Multiplier = -1971283087;
Widget_getRoot = 'bj';
Widget_getRootID = 'h';
Widget_getRootID_Multiplier = 1154498019;
Widget_getScrollX = 'o';
Widget_getScrollX_Multiplier = -1096692949;
Widget_getScrollY = 'm';
Widget_getScrollY_Multiplier = 1512227783;
Widget_getSpriteID = 'am';
Widget_getSpriteID_Multiplier = 132754559;
Widget_getStackSize = 'dv';
Widget_getStackSize_Multiplier = 192913583;
Widget_getStackSizes = 'dk';
Widget_getText = 'br';
Widget_getTextureID = 'aq';
Widget_getTextureID_Multiplier = 2009338005;
Widget_getWidth = 'k';
Widget_getWidth_Multiplier = -764139897;
Widget_getX = 'p';
Widget_getX_Multiplier = 692928385;
Widget_getY = 'x';
Widget_getY_Multiplier = -598844925;
Widget_isHidden = 'i';
{* WidgetNode - 1 Hooks *}
WidgetNode = 'e';
WidgetNode_getID = 't';
WidgetNode_getID_Multiplier = 2097571581;
2014-09-04 11:43:05
From: Cheddy
Inb4 anyone asks, new hooks =)
{ 209 Hooks Found By Cheddys Beautiful Updater }
const
ReflectionRevision = 58;
{* BoundaryObject - 9 Hooks *}
BoundaryObject = 'cj';
BoundaryObject_getAlternativeOrientation = 'd';
BoundaryObject_getAlternativeOrientation_Multiplier = -1515667875;
BoundaryObject_getBackupRenderable = 'v';
BoundaryObject_getFlags = 'j';
BoundaryObject_getFlags_Multiplier = 925559837;
BoundaryObject_getID = 'z';
BoundaryObject_getID_Multiplier = -101908655;
BoundaryObject_getOrientation = 'e';
BoundaryObject_getOrientation_Multiplier = 843487795;
BoundaryObject_getPlane = 't';
BoundaryObject_getPlane_Multiplier = -1666421637;
BoundaryObject_getRenderable = 'n';
BoundaryObject_getX = 's';
BoundaryObject_getX_Multiplier = -1089886639;
BoundaryObject_getY = 'f';
BoundaryObject_getY_Multiplier = 1982254941;
{* Buffer - 2 Hooks *}
Buffer = 'db';
Buffer_getOffset = 's';
Buffer_getOffset_Multiplier = 1042478381;
Buffer_getPayload = 't';
{* Cache - 5 Hooks *}
Cache = 'fy';
Cache_getCacheableNode = 't';
Cache_getHashTable = 'e';
Cache_getQueue = 'd';
Cache_getRemaining = 'f';
Cache_getRemaining_Multiplier = 1;
Cache_getSize = 's';
Cache_getSize_Multiplier = 1;
{* CacheableNode - 2 Hooks *}
CacheableNode = 'fe';
CacheableNode_getNextCacheable = 'cp';
CacheableNode_getPreviousCacheable = 'cx';
{* Canvas - 1 Hooks *}
Canvas = 'dz';
Canvas_getComponent = 't';
{* Character - 17 Hooks *}
Character = 'ae';
Character_getAnimation = 'ap';
Character_getAnimation_Multiplier = 1281463967;
Character_getCombatCycle = 'ag';
Character_getCombatCycle_Multiplier = 1612466433;
Character_getHealth = 'au';
Character_getHealth_Multiplier = 2026047803;
Character_getHitCycles = 'aa';
Character_getHitDamages = 'at';
Character_getHitTypes = 'av';
Character_getInteractingIndex = 'ay';
Character_getInteractingIndex_Multiplier = 189973027;
Character_getMaxHealth = 'aj';
Character_getMaxHealth_Multiplier = 1042698779;
Character_getOrientation = 'bm';
Character_getOrientation_Multiplier = -1991653213;
Character_getQueueLength = 'bj';
Character_getQueueLength_Multiplier = 604519285;
Character_getQueueTraversed = 'bw';
Character_getQueueX = 'bs';
Character_getQueueY = 'bb';
Character_getText = 'ax';
Character_getX = 'k';
Character_getX_Multiplier = -1912652009;
Character_getY = 'b';
Character_getY_Multiplier = 1159505345;
Character_isInSequence = 'ar';
{* Client - 53 Hooks *}
Client = 'client';
Client_getBaseX = 'w.cd';
Client_getBaseX_Multiplier = -568870037;
Client_getBaseY = 'e.cy';
Client_getBaseY_Multiplier = -635953723;
Client_getCameraPitch = 'bk.fa';
Client_getCameraPitch_Multiplier = 1426250829;
Client_getCameraX = 'w.ff';
Client_getCameraX_Multiplier = -998054749;
Client_getCameraY = 'g.fo';
Client_getCameraY_Multiplier = 270638187;
Client_getCameraYaw = 'f.fu';
Client_getCameraYaw_Multiplier = 573879485;
Client_getCameraZ = 'dy.fb';
Client_getCameraZ_Multiplier = -2115906345;
Client_getCanvas = 'p.po';
Client_getCollisionMaps = 'client.w';
Client_getEnergy = 'client.jv';
Client_getEnergy_Multiplier = -758662925;
Client_getExperiences = 'client.hu';
Client_getGameCycle = 'client.p';
Client_getGameCycle_Multiplier = 1234794817;
Client_getGameState = 'client.l';
Client_getGameState_Multiplier = -1320666373;
Client_getGroundItems = 'client.hm';
Client_getItemCompositeCache = 'aj.e';
Client_getItemContainerTable = 'w.t';
Client_getLevels = 'client.ht';
Client_getLocalNPCs = 'client.bb';
Client_getLocalPlayer = 'cr.hf';
Client_getLocalPlayers = 'client.ga';
Client_getLoginState = 'aw.ae';
Client_getLoginState_Multiplier = 76594955;
Client_getMapAngle = 'client.fq';
Client_getMapAngle_Multiplier = -482144205;
Client_getMapOffset = 'client.df';
Client_getMapOffset_Multiplier = 816991303;
Client_getMapScale = 'client.dg';
Client_getMapScale_Multiplier = 1186981241;
Client_getMenuActions = 'client.ik';
Client_getMenuCount = 'client.ak';
Client_getMenuCount_Multiplier = 1851881611;
Client_getMenuHeight = 'ah.io';
Client_getMenuHeight_Multiplier = -1940027677;
Client_getMenuOptions = 'client.iq';
Client_getMenuWidth = 'cf.im';
Client_getMenuWidth_Multiplier = -497476525;
Client_getMenuX = 'cz.he';
Client_getMenuX_Multiplier = -1898904481;
Client_getMenuY = 'f.hx';
Client_getMenuY_Multiplier = -121628793;
Client_getNPCCompositeCache = 'ar.f';
Client_getNPCIndices = 'client.bq';
Client_getObjectCompositeCache = 'aq.e';
Client_getPassword = 'aw.az';
Client_getPlane = 'h.hq';
Client_getPlane_Multiplier = 892241573;
Client_getRealLevels = 'client.hp';
Client_getRegion = 'e.dk';
Client_getSettings = 'ei.s';
Client_getTileHeights = 'n.t';
Client_getTileSettings = 'n.s';
Client_getUsername = 'aw.am';
Client_getValidWidgets = 'ew.s';
Client_getWeight = 'client.jz';
Client_getWeight_Multiplier = 906057103;
Client_getWidgetBoundsHeight = 'client.lb';
Client_getWidgetBoundsWidth = 'client.lc';
Client_getWidgetBoundsX = 'client.lv';
Client_getWidgetBoundsY = 'client.lk';
Client_getWidgetNodeTable = 'client.jb';
Client_getWidgets = 'ew.t';
Client_getWidgetSettings = 'ei.f';
Client_getWidgetVarps = 'ei.f';
Client_isMenuOpen = 'client.hr';
{* CollisionMap - 1 Hooks *}
CollisionMap = 'go';
CollisionMap_getFlags = 'ab';
{* FloorObject - 6 Hooks *}
FloorObject = 'co';
FloorObject_getFlags = 'n';
FloorObject_getFlags_Multiplier = 91978925;
FloorObject_getID = 'd';
FloorObject_getID_Multiplier = -2054573615;
FloorObject_getPlane = 't';
FloorObject_getPlane_Multiplier = 1678696827;
FloorObject_getRenderable = 'e';
FloorObject_getX = 's';
FloorObject_getX_Multiplier = -421149461;
FloorObject_getY = 'f';
FloorObject_getY_Multiplier = -227813017;
{* HashTable - 5 Hooks *}
HashTable = 'ft';
HashTable_getCurrent = 'e';
HashTable_getCurrentIndex = 'd';
HashTable_getCurrentIndex_Multiplier = 1;
HashTable_getHead = 'f';
HashTable_getNodes = 's';
HashTable_getSize = 't';
HashTable_getSize_Multiplier = 1;
{* Item - 2 Hooks *}
Item = 'o';
Item_getID = 't';
Item_getID_Multiplier = 1375185025;
Item_getStackSize = 's';
Item_getStackSize_Multiplier = -1465831673;
{* ItemComposite - 4 Hooks *}
ItemComposite = 'aj';
ItemComposite_getGroundActions = 'i';
ItemComposite_getName = 'u';
ItemComposite_getWidgetActions = 'o';
ItemComposite_isMembers = 'h';
{* ItemContainer - 2 Hooks *}
ItemContainer = 'w';
ItemContainer_getIDs = 's';
ItemContainer_getStackSizes = 'f';
{* ItemLayer - 8 Hooks *}
ItemLayer = 'cs';
ItemLayer_getBottomRenderable = 'e';
ItemLayer_getHeight = 'z';
ItemLayer_getHeight_Multiplier = -817560073;
ItemLayer_getID = 'v';
ItemLayer_getID_Multiplier = 116687793;
ItemLayer_getMiddleRenderable = 'd';
ItemLayer_getPlane = 't';
ItemLayer_getPlane_Multiplier = 1919008493;
ItemLayer_getTopRenderable = 'n';
ItemLayer_getX = 's';
ItemLayer_getX_Multiplier = 190476239;
ItemLayer_getY = 'f';
ItemLayer_getY_Multiplier = 1036270037;
{* LinkedList - 2 Hooks *}
LinkedList = 'fl';
LinkedList_getHead = 't';
LinkedList_getTail = 's';
{* Model - 12 Hooks *}
Model = 'cc';
Model_getIndicesX = 'u';
Model_getIndicesY = 'g';
Model_getIndicesZ = 'a';
Model_getTexturedIndicesX = 'c';
Model_getTexturedIndicesY = 'w';
Model_getTexturedIndicesZ = 'l';
Model_getTexturedVerticesX = 'u';
Model_getTexturedVerticesY = 'g';
Model_getTexturedVerticesZ = 'a';
Model_getVerticesX = 'n';
Model_getVerticesY = 'v';
Model_getVerticesZ = 'z';
{* Node - 3 Hooks *}
Node = 'gm';
Node_getNext = 'em';
Node_getPrevious = 'eh';
Node_getUID = 'df';
{* NPC - 1 Hooks *}
NPC = 'ab';
NPC_getComposite = 't';
{* NPCComposite - 7 Hooks *}
NPCComposite = 'ar';
NPCComposite_getActions = 'k';
NPCComposite_getCombatLevel = 'h';
NPCComposite_getCombatLevel_Multiplier = 569378961;
NPCComposite_getID = 'd';
NPCComposite_getID_Multiplier = 903407553;
NPCComposite_getName = 'n';
NPCComposite_getSettingID = 'ah';
NPCComposite_getSettingID_Multiplier = 722717255;
NPCComposite_getTransformIDs = 'ao';
NPCComposite_getVarBitID = 'ae';
NPCComposite_getVarBitID_Multiplier = 702885197;
{* ObjectComposite - 2 Hooks *}
ObjectComposite = 'aq';
ObjectComposite_getActions = 'af';
ObjectComposite_getName = 'a';
{* Player - 3 Hooks *}
Player = 'f';
Player_getCombatLevel = 'd';
Player_getCombatLevel_Multiplier = 1066957001;
Player_getModel = 'c';
Player_getName = 't';
{* Queue - 1 Hooks *}
Queue = 'fx';
Queue_getHead = 't';
{* Region - 2 Hooks *}
Region = 'cb';
Region_getObjects = 'j';
Region_getTiles = 'n';
{* Renderable - 1 Hooks *}
Renderable = 'bq';
Renderable_getModelHeight = 'cj';
Renderable_getModelHeight_Multiplier = -698968837;
{* RSObject - 12 Hooks *}
RSObject = 'cm';
RSObject_getFlags = 'w';
RSObject_getFlags_Multiplier = 1203732819;
RSObject_getHeight = 's';
RSObject_getHeight_Multiplier = -1795351697;
RSObject_getID = 'c';
RSObject_getID_Multiplier = -1736250779;
RSObject_getOrientation = 'n';
RSObject_getOrientation_Multiplier = 1933292693;
RSObject_getPlane = 't';
RSObject_getPlane_Multiplier = 762681757;
RSObject_getRelativeX = 'v';
RSObject_getRelativeX_Multiplier = -767162703;
RSObject_getRelativeY = 'j';
RSObject_getRelativeY_Multiplier = 101039943;
RSObject_getRenderable = 'd';
RSObject_getSizeX = 'z';
RSObject_getSizeX_Multiplier = 1942425537;
RSObject_getSizeY = 'u';
RSObject_getSizeY_Multiplier = 1814654745;
RSObject_getX = 'f';
RSObject_getX_Multiplier = 1837351411;
RSObject_getY = 'e';
RSObject_getY_Multiplier = 195040881;
{* Tile - 8 Hooks *}
Tile = 'cw';
Tile_getBoundaryObject = 'v';
Tile_getFloorObject = 'j';
Tile_getItemLayer = 'u';
Tile_getPlane = 'e';
Tile_getPlane_Multiplier = 1693898871;
Tile_getRSObjects = 'a';
Tile_getWall = 'z';
Tile_getX = 's';
Tile_getX_Multiplier = -833139785;
Tile_getY = 'f';
Tile_getY_Multiplier = -985522581;
{* Wall - 11 Hooks *}
Wall = 'cn';
Wall_getBackupRenderable = 'j';
Wall_getFlags = 'g';
Wall_getFlags_Multiplier = -153029915;
Wall_getHeight = 'd';
Wall_getHeight_Multiplier = -1238977827;
Wall_getID = 'u';
Wall_getID_Multiplier = 1278767611;
Wall_getOrientation = 'e';
Wall_getOrientation_Multiplier = 1930387639;
Wall_getPlane = 't';
Wall_getPlane_Multiplier = 637314477;
Wall_getRelativeX = 'n';
Wall_getRelativeX_Multiplier = 337723027;
Wall_getRelativeY = 'v';
Wall_getRelativeY_Multiplier = -1850897549;
Wall_getRenderable = 'z';
Wall_getX = 's';
Wall_getX_Multiplier = -366351375;
Wall_getY = 'f';
Wall_getY_Multiplier = 1317694817;
{* Widget - 26 Hooks *}
Widget = 'ew';
Widget_getActions = 'bh';
Widget_getBorderThickness = 'at';
Widget_getBorderThickness_Multiplier = 1107949007;
Widget_getBoundsIndex = 'dq';
Widget_getBoundsIndex_Multiplier = -1419799283;
Widget_getChildren = 'dt';
Widget_getContentIDs = 'dr';
Widget_getHeight = 'b';
Widget_getHeight_Multiplier = -1971283087;
Widget_getID = 'a';
Widget_getID_Multiplier = 640678563;
Widget_getIndex = 'c';
Widget_getIndex_Multiplier = -1751616003;
Widget_getItemID = 'du';
Widget_getItemID_Multiplier = 802088521;
Widget_getLoopCycleStatus = 'dg';
Widget_getLoopCycleStatus_Multiplier = -1404242157;
Widget_getName = 'bv';
Widget_getRelativeX = 'k';
Widget_getRelativeX_Multiplier = -764139897;
Widget_getRelativeY = 'b';
Widget_getRelativeY_Multiplier = -1971283087;
Widget_getRoot = 'bj';
Widget_getRootID = 'h';
Widget_getRootID_Multiplier = 1154498019;
Widget_getScrollX = 'o';
Widget_getScrollX_Multiplier = -1096692949;
Widget_getScrollY = 'm';
Widget_getScrollY_Multiplier = 1512227783;
Widget_getSpriteID = 'am';
Widget_getSpriteID_Multiplier = 132754559;
Widget_getStackSize = 'dv';
Widget_getStackSize_Multiplier = 192913583;
Widget_getStackSizes = 'dk';
Widget_getText = 'br';
Widget_getTextureID = 'aq';
Widget_getTextureID_Multiplier = 2009338005;
Widget_getWidth = 'k';
Widget_getWidth_Multiplier = -764139897;
Widget_getX = 'p';
Widget_getX_Multiplier = 692928385;
Widget_getY = 'x';
Widget_getY_Multiplier = -598844925;
Widget_isHidden = 'i';
{* WidgetNode - 1 Hooks *}
WidgetNode = 'e';
WidgetNode_getID = 't';
WidgetNode_getID_Multiplier = 2097571581;
[Error] C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Misc.simba(245:63): Unknown identifier 'client_settings' at line 245
Compiling failed.
Successfully saved: C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Misc.simba
[Hint] C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Misc.simba(250:3): Variable 'I' never used at line 249
[Error] C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Misc.simba(386:52): Unknown identifier 'client_menuCount' at line 386
Compiling failed.[Error] C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Misc.simba(660:57): Unknown identifier 'client_player' at line 660
Compiling failed.
2014-09-04 15:21:41
2014-09-04 15:40:36
From: Fitta
Reason is quite simple.
Why would you guys keep changing the constants for the hooks?
Edit:
Just make a standard and go with that, no?
2014-09-04 16:11:40
From: tls
The standard is how it is right now. Cheddy started a new updater and named things correctly, and that is why they changed.
2014-09-04 16:37:14
From: tls
The standard is how it is right now. Cheddy started a new updater and named things correctly, and that is why they changed.
2014-09-04 16:38:09
From: Fitta
So the standard is wrong? I'm confused
2014-09-04 17:14:28
2014-09-04 19:14:59
2014-09-05 05:09:55
2014-09-05 11:25:54
2014-09-05 21:44:05
2014-09-06 00:28:03
2014-09-06 02:17:16
From: Dezval
Same here. We play the waiting game for now.. :norris:
2014-09-06 02:28:14
From: Grunt
Endless frustration…:duh:
Any merciful god, please make a tutorial for us peasants? So we may make our own fires, and cook our own meals?
2014-09-06 02:41:25
From: darkspell
Am I still waiting for the updates to happen or when he updates them? It's still outdated for me.
2014-09-06 02:48:44
From: Harrier
Get your own hooks? Ok, learn java, bytecode analysis then study the runetek engine till you start finding hooks.
Or just wait, Krazy meerkat does everything in his own time with little to no reward. So he can take as much time as he wants, since there is a good chance school/college/uni has restarted for him.
2014-09-06 06:11:13
From: Grunt
Endless frustration…:duh:
Any merciful god, please make a tutorial for us peasants? So we may make our own fires, and cook our own meals?
2014-09-06 06:17:02
From: Grunt
I appreciate Krazy meerkat's time and effort.
Point me to some links to where I can get started?
2014-09-06 07:22:04
2014-09-06 10:10:08
From: Flight
Looks surprisingly similar to Mopar's old old deob… :huh:
2014-09-06 10:44:54
http://speedy.sh/Dm6du/hooks-original.xlsx
2014-09-06 13:25:47
From: Grunt
Thanks Cheddy
Done from 2 previous revisions of CHeddy and Merkat's to come up with an incomplete translation.http://speedy.sh/Dm6du/hooks-original.xlsx
{ 209 Hooks Found By Cheddys Beautiful Updater }
const
ReflectionRevision = '58';
{* BoundaryObject - 9 Hooks *}
BoundaryObject = 'cj';
BoundaryObject_AlternativeOrientation = 'd';
BoundaryObject_AlternativeOrientation_Multiplier = -1515667875;
BoundaryObject_BackupRenderable = 'v';
BoundaryObject_Flags = 'j';
BoundaryObject_Flags_Multiplier = 925559837;
BoundaryObject_Hash = 'z';
BoundaryObject_Hash_Multiplier = -101908655;
BoundaryObject_Orientation = 'e';
BoundaryObject_Orientation_Multiplier = 843487795;
BoundaryObject_Plane = 't';
BoundaryObject_Plane_Multiplier = -1666421637;
BoundaryObject_Renderable = 'n';
BoundaryObject_Get_X = 's';
BoundaryObject_Get_X_Multiplier = -1089886639;
BoundaryObject_Get_Y = 'f';
BoundaryObject_Get_Y_Multiplier = 1982254941;
{* Buffer - 2 Hooks *}
Buffer = 'db';
Buffer_Offset = 's';
Buffer_Offset_Multiplier = 1042478381;
Buffer_Payload = 't';
{* Cache - 5 Hooks *}
Cache = 'fy';
Cache_CacheableNode = 't';
Cache_NodeHashTable = 'e';
Cache_Queue = 'd';
Cache_Remaining = 'f';
Cache_Remaining_Multiplier = 1;
Cache_Size = 's';
Cache_Size_Multiplier = 1;
{* CacheableNode - 2 Hooks *}
CacheableNode = 'fe';
CacheableNode_Next = 'cp';
CacheableNode_Prev = 'cx';
{* Canvas - 1 Hooks *}
Canvas = 'dz';
Canvas_Component = 't';
{* Actor - 17 Hooks *}
Actor = 'ae';
Actor_Animation = 'ap';
Actor_Animation_Multiplier = 1281463967;
Actor_CombatCycle = 'ag';
Actor_CombatCycle_Multiplier = 1612466433;
Actor_Health = 'au';
Actor_Health_Multiplier = 2026047803;
Actor_HitCycles = 'aa';
Actor_HitDamages = 'at';
Actor_HitTypes = 'av';
Actor_Interacting = 'ay';
Actor_Interacting_Multiplier = 189973027;
Actor_MaxHealth = 'aj';
Actor_MaxHealth_Multiplier = 1042698779;
Actor_Orientation = 'bm';
Actor_Orientation_Multiplier = -1991653213;
Actor_PathLength = 'bj';
Actor_PathLength_Multiplier = 604519285;
Actor_PathTraversed = 'bw';
Actor_PathX = 'bs';
Actor_PathY = 'bb';
Actor_ActiveText = 'ax';
Actor_LocalX = 'k';
Actor_LocalX_Multiplier = -1912652009;
Actor_LocalY = 'b';
Actor_LocalY_Multiplier = 1159505345;
Actor_isInSequence = 'ar';
{* Client - 53 Hooks *}
Client = 'client';
Client_BaseX = 'w.cd';
Client_BaseX_Multiplier = -568870037;
Client_BaseY = 'e.cy';
Client_BaseY_Multiplier = -635953723;
Client_CameraPitch = 'bk.fa';
Client_CameraPitch_Multiplier = 1426250829;
Client_CameraX = 'w.ff';
Client_CameraX_Multiplier = -998054749;
Client_CameraY = 'g.fo';
Client_CameraY_Multiplier = 270638187;
Client_CameraYaw = 'f.fu';
Client_CameraYaw_Multiplier = 573879485;
Client_CameraZ = 'dy.fb';
Client_CameraZ_Multiplier = -2115906345;
Client_Canvas = 'p.po';
Client_CollisionMaps = 'client.w';
Client_Run_Energy = 'client.jv';
Client_Run_Energy_Multiplier = -758662925;
Client_Experiences = 'client.hu';
Client_LoopCycle = 'client.p';
Client_LoopCycle_Multiplier = 1234794817;
Client_Login_State = 'client.l';
Client_Login_State_Multiplier = -1320666373;
Client_GroundItems = 'client.hm';
Client_ItemDefinitionCache = 'aj.e';
Client_ItemContainerTable = 'w.t';
Client_Levels = 'client.ht';
Client_NPCs = 'client.bb';
Client_Player = 'cr.hf';
Client_Players = 'client.ga';
Client_LoginState = 'aw.ae';
Client_LoginState_Multiplier = 76594955;
Client_CompassAngle = 'client.fq';
Client_CompassAngle_Multiplier = -482144205;
Client_Map_Offset = 'client.df';
Client_Map_Offset_Multiplier = 816991303;
Client_Map_Scale = 'client.dg';
Client_Map_Scale_Multiplier = 1186981241;
Client_MenuActions = 'client.ik';
Client_MenuCount = 'client.ak';
Client_MenuCount_Multiplier = 1851881611;
Client_MenuHeight = 'ah.io';
Client_MenuHeight_Multiplier = -1940027677;
Client_MenuOptions = 'client.iq';
Client_MenuWidth = 'cf.im';
Client_MenuWidth_Multiplier = -497476525;
Client_MenuX = 'cz.he';
Client_MenuX_Multiplier = -1898904481;
Client_MenuY = 'f.hx';
Client_MenuY_Multiplier = -121628793;
Client_NPCDefinitionCache = 'ar.f';
Client_NPCIndices = 'client.bq';
Client_ObjectDefinitionCache = 'aq.e';
Client_Password = 'aw.az';
Client_Plane = 'h.hq';
Client_Plane_Multiplier = 892241573;
Client_RealLevels = 'client.hp';
Client_Region = 'e.dk';
Client_Settings = 'ei.s';
Client_GroundHeights = 'n.t';
Client_GroundSettings = 'n.s';
Client_Username = 'aw.am';
Client_ValidWidgets = 'ew.s';
Client_Weight = 'client.jz';
Client_Weight_Multiplier = 906057103;
Client_WidgetBoundsHeight = 'client.lb';
Client_WidgetBoundsWidth = 'client.lc';
Client_WidgetBoundsX = 'client.lv';
Client_WidgetBoundsY = 'client.lk';
Client_WidgetNodeTable = 'client.jb';
Client_Widgets = 'ew.t';
Client_WidgetSettings = 'ei.f';
Client_WidgetVarps = 'ei.f';
Client_isMenuOpen = 'client.hr';
{* CollisionMap - 1 Hooks *}
CollisionMap = 'go';
CollisionMap_Flags = 'ab';
{* FloorDecorationObject - 6 Hooks *}
FloorDecorationObject = 'co';
FloorDecorationObject_Flags = 'n';
FloorDecorationObject_Flags_Multiplier = 91978925;
FloorDecorationObject_Hash = 'd';
FloorDecorationObject_Hash_Multiplier = -2054573615;
FloorDecorationObject_Plane = 't';
FloorDecorationObject_Plane_Multiplier = 1678696827;
FloorDecorationObject_Renderable = 'e';
FloorDecorationObject_Get_X = 's';
FloorDecorationObject_Get_X_Multiplier = -421149461;
FloorDecorationObject_Get_Y = 'f';
FloorDecorationObject_Get_Y_Multiplier = -227813017;
{* NodeHashTable - 5 Hooks *}
NodeHashTable = 'ft';
NodeHashTable_Current = 'e';
NodeHashTable_CurrentIndex = 'd';
NodeHashTable_CurrentIndex_Multiplier = 1;
NodeHashTable_Head = 'f';
NodeHashTable_GetNodes = 's';
NodeHashTable_GetSize = 't';
NodeHashTable_GetSize_Multiplier = 1;
{* Item - 2 Hooks *}
Item = 'o';
Item_ID = 't';
Item_ID_Multiplier = 1375185025;
Item_StackSize = 's';
Item_StackSize_Multiplier = -1465831673;
{* ItemDefinition - 4 Hooks *}
ItemDefinition = 'aj';
ItemDefinition_GroundActions = 'i';
ItemDefinition_Name = 'u';
ItemDefinition_InventoryActions = 'o';
ItemDefinition_isMembers = 'h';
{* ItemContainer - 2 Hooks *}
ItemContainer = 'w';
ItemContainer_IDs = 's';
ItemContainer_StackSizes = 'f';
{* ItemLayer - 8 Hooks *}
ItemLayer = 'cs';
ItemLayer_BottomRenderable = 'e';
ItemLayer_Height = 'z';
ItemLayer_Height_Multiplier = -817560073;
ItemLayer_ID = 'v';
ItemLayer_ID_Multiplier = 116687793;
ItemLayer_MiddleRenderable = 'd';
ItemLayer_Plane = 't';
ItemLayer_Plane_Multiplier = 1919008493;
ItemLayer_TopRenderable = 'n';
ItemLayer_X = 's';
ItemLayer_X_Multiplier = 190476239;
ItemLayer_Y = 'f';
ItemLayer_Y_Multiplier = 1036270037;
{* LinkedList - 2 Hooks *}
LinkedList = 'fl';
LinkedList_Head = 't';
LinkedList_Tail = 's';
{* Model - 12 Hooks *}
Model = 'cc';
Model_IndicesX = 'u';
Model_IndicesY = 'g';
Model_IndicesZ = 'a';
Model_TexturedIndicesX = 'c';
Model_TexturedIndicesY = 'w';
Model_TexturedIndicesZ = 'l';
Model_TexturedVerticesX = 'u';
Model_TexturedVerticesY = 'g';
Model_TexturedVerticesZ = 'a';
Model_VerticesX = 'n';
Model_VerticesY = 'v';
Model_VerticesZ = 'z';
{* Node - 3 Hooks *}
Node = 'gm';
Node_Next = 'em';
Node_Previous = 'eh';
Node_ID = 'df';
{* NPC - 1 Hooks *}
NPC = 'ab';
NPC_Definition = 't';
{* NPCDefinition - 7 Hooks *}
NPCDefinition = 'ar';
NPCDefinition_Actions = 'k';
NPCDefinition_CombatLevel = 'h';
NPCDefinition_CombatLevel_Multiplier = 569378961;
NPCDefinition_ID = 'd';
NPCDefinition_ID_Multiplier = 903407553;
NPCDefinition_Name = 'n';
NPCDefinition_SettingID = 'ah';
NPCDefinition_SettingID_Multiplier = 722717255;
NPCDefinition_TransformIDs = 'ao';
NPCDefinition_VarBitID = 'ae';
NPCDefinition_VarBitID_Multiplier = 702885197;
{* ObjectDefinition - 2 Hooks *}
ObjectDefinition = 'aq';
ObjectDefinition_Actions = 'af';
ObjectDefinition_Name = 'a';
{* Player - 3 Hooks *}
Player = 'f';
Player_CombatLevel = 'd';
Player_CombatLevel_Multiplier = 1066957001;
Player_Model = 'c';
Player_Name = 't';
{* Queue - 1 Hooks *}
Queue = 'fx';
Queue_Head = 't';
{* Region - 2 Hooks *}
Region = 'cb';
Region_Objects = 'j';
Region_SceneTiles = 'n';
{* Renderable - 1 Hooks *}
Renderable = 'bq';
Renderable_ModelHeight = 'cj';
Renderable_ModelHeight_Multiplier = -698968837;
{* WorldObject - 12 Hooks *}
WorldObject = 'cm';
WorldObject_Flags = 'w';
WorldObject_Flags_Multiplier = 1203732819;
WorldObject_Height = 's';
WorldObject_Height_Multiplier = -1795351697;
WorldObject_Hash = 'c';
WorldObject_Hash_Multiplier = -1736250779;
WorldObject_Orientation = 'n';
WorldObject_Orientation_Multiplier = 1933292693;
WorldObject_Plane = 't';
WorldObject_Plane_Multiplier = 762681757;
WorldObject_RelativeX = 'v';
WorldObject_RelativeX_Multiplier = -767162703;
WorldObject_RelativeY = 'j';
WorldObject_RelativeY_Multiplier = 101039943;
WorldObject_Renderable = 'd';
WorldObject_SizeX = 'z';
WorldObject_SizeX_Multiplier = 1942425537;
WorldObject_SizeY = 'u';
WorldObject_SizeY_Multiplier = 1814654745;
WorldObject_Get_X = 'f';
WorldObject_Get_X_Multiplier = 1837351411;
WorldObject_Get_Y = 'e';
WorldObject_Get_Y_Multiplier = 195040881;
{* SceneTile - 8 Hooks *}
SceneTile = 'cw';
SceneTile_BoundaryObject = 'v';
SceneTile_FloorDecorationObject = 'j';
SceneTile_ItemLayer = 'u';
SceneTile_Plane = 'e';
SceneTile_Plane_Multiplier = 1693898871;
SceneTile_WorldObjects = 'a';
SceneTile_WallObject = 'z';
SceneTile_X = 's';
SceneTile_X_Multiplier = -833139785;
SceneTile_Y = 'f';
SceneTile_Y_Multiplier = -985522581;
{* WallObject - 11 Hooks *}
WallObject = 'cn';
WallObject_BackupRenderable = 'j';
WallObject_Flags = 'g';
WallObject_Flags_Multiplier = -153029915;
WallObject_Height = 'd';
WallObject_Height_Multiplier = -1238977827;
WallObject_Hash = 'u';
WallObject_Hash_Multiplier = 1278767611;
WallObject_Orientation = 'e';
WallObject_Orientation_Multiplier = 1930387639;
WallObject_Plane = 't';
WallObject_Plane_Multiplier = 637314477;
WallObject_RelativeX = 'n';
WallObject_RelativeX_Multiplier = 337723027;
WallObject_RelativeY = 'v';
WallObject_RelativeY_Multiplier = -1850897549;
WallObject_Renderable = 'z';
WallObject_X = 's';
WallObject_X_Multiplier = -366351375;
WallObject_Y = 'f';
WallObject_Y_Multiplier = 1317694817;
{* Widget - 26 Hooks *}
Widget = 'ew';
Widget_GetActions = 'bh';
Widget_BorderThickness = 'at';
Widget_BorderThickness_Multiplier = 1107949007;
Widget_BoundsIndex = 'dq';
Widget_BoundsIndex_Multiplier = -1419799283;
Widget_Children = 'dt';
Widget_GetItems = 'dr';
Widget_Height = 'b';
Widget_Height_Multiplier = -1971283087;
Widget_GetID = 'a';
Widget_GetID_Multiplier = 640678563;
Widget_GetIndex = 'c';
Widget_GetIndex_Multiplier = -1751616003;
Widget_ItemID = 'du';
Widget_ItemID_Multiplier = 802088521;
Widget_LoopCycleStatus = 'dg';
Widget_LoopCycleStatus_Multiplier = -1404242157;
Widget_Name = 'bv';
Widget_GetRelativeX = 'k';
Widget_GetRelativeX_Multiplier = -764139897;
Widget_GetRelativeY = 'b';
Widget_GetRelativeY_Multiplier = -1971283087;
Widget_Root = 'bj';
Widget_RootID = 'h';
Widget_RootID_Multiplier = 1154498019;
Widget_ScrollX = 'o';
Widget_ScrollX_Multiplier = -1096692949;
Widget_ScrollY = 'm';
Widget_ScrollY_Multiplier = 1512227783;
Widget_SpriteID = 'am';
Widget_SpriteID_Multiplier = 132754559;
Widget_StackSize = 'dv';
Widget_StackSize_Multiplier = 192913583;
Widget_GetStackSizes = 'dk';
Widget_GetText = 'br';
Widget_GetTextureID = 'aq';
Widget_GetTextureID_Multiplier = 2009338005;
Widget_Width = 'k';
Widget_Width_Multiplier = -764139897;
Widget_X = 'p';
Widget_X_Multiplier = 692928385;
Widget_Y = 'x';
Widget_Y_Multiplier = -598844925;
Widget_isHidden = 'i';
{* WidgetNode - 1 Hooks *}
WidgetNode = 'e';
WidgetNode_ID = 't';
WidgetNode_ID_Multiplier = 2097571581;
2014-09-06 15:26:49
From: Grunt
Get used to waiting.
2014-09-07 03:05:00
2014-09-07 03:39:07
From: Krazy_Meerkat
The hooks have been updated, thanks Cheddy (you were only missing the npcdef_level hook).
I'm not here to debate naming, although the names used in this include aren't entirely logical, it's better not to have this discussion at the minute b/c it's a matter of opinion in the end (eg. Actor class could also be called Character, Entity, etc.) not to mention that Cheddy's updater is for a different include.
2014-09-07 03:44:03
From: tls
npcdef_level = npcdef_combatlvl
2014-09-07 12:18:16
2014-09-07 12:35:22
From: tim1142
Error: Out Of Range at line 509
The following DTMs were not freed: [SRL - Lamp bitmap, SRL - Book of Knowledge, 2]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Minimap Mask bitmap, 3]
^ is in the misc file.
Getting this now that the reflection include updated. Any ideas on what to do??
Client_MenuCount = 'client.ip';
Client_MenuCount_Multiplier = -686236781;
2014-09-07 13:15:01
From: Cheddy
That would be cause my menuCount hook is wrong =)
Client_MenuCount = 'client.ip';
Client_MenuCount_Multiplier = -686236781;
2014-09-07 13:31:22
2014-09-07 13:46:53
From: Grunt
What happened to our Updater? o.O
2014-09-07 14:20:41
From: Grunt
What happened to our Updater? o.O
2014-09-07 17:56:16
From: Cheddy
That would be cause my menuCount hook is wrong =)
Client_MenuCount = 'client.ip';
Client_MenuCount_Multiplier = -686236781;
2014-09-07 18:00:58
From: icode
I can't find that in the misc file to replace :/
2014-09-11 16:03:39
2014-09-12 12:49:50
function dragon_TileToMS(Tile: TPoint): TPoint;
var
X, Y, Height: Integer;
begin
X := Round((Tile.X - (SmartGetFieldInt(SmartCurrentTarget, 0, client_baseX) * client_baseX_Multiplier) - 0.0) * 128);
Y := Round((Tile.Y - (SmartGetFieldInt(SmartCurrentTarget, 0, client_baseY) * client_baseY_Multiplier) - 0.0) * 128);
Height := R_GetTileHeight(Tile);
Result := R_TileToMSEx(X, Y, Height);
if (not PointInBox(Result, MSBox)) then
Result := Point(-1, -1);
end;
2014-09-12 18:38:57
From: ineedbot
Sweet, I cant wait to see it complete!
So far I came up with this
All the hooks work and everything is accurate, however CurrentHP and MaxHP return 0 for some reason. Also I'm unsure if TileWalkQueue is doing anything. Only returning (-1, -1)…
type TRSPlayer = record
Name, OverheadText : String;
Level, CurrentHP, MaxHP, Animation, Interacting, Orientation, Plane : Integer;
InCombat : boolean;
Tile, TileWalkQueue : TPoint;
end;
TRSPlayerArray = array of TRSPlayer;
function R_GetAllRSPlayers: TRSPlayerArray;
var
i, j, PlayerCount, Ref, PlayerName, Overhead, x, y, LoopCycle : Integer;
begin
PlayerCount := SmartGetFieldArraySize(SmartCurrentTarget, 0, Client_Players, 0);
for i:=0 to PlayerCount-1 do begin
Ref := SmartGetFieldArrayObject(SmartCurrentTarget, 0, Client_Players, i);
if (Ref <= 0) then
Continue;
Inc(j);
SetLength(Result, j);
PlayerName := SmartGetFieldObject(SmartCurrentTarget, Ref, Player_Name);
x := SmartGetFieldInt(SmartCurrentTarget, 0, Client_BaseX)*Client_BaseX_Multiplier;
y := SmartGetFieldInt(SmartCurrentTarget, 0, Client_BaseY)*Client_BaseY_Multiplier;
LoopCycle := SmartGetFieldInt(SmartCurrentTarget, 0, Client_LoopCycle)*Client_LoopCycle_Multiplier;
with Result[j-1] do begin
Level := SmartGetFieldInt(SmartCurrentTarget, Ref, Player_CombatLevel)*Player_CombatLevel_Multiplier;
CurrentHP := SmartGetFieldInt(SmartCurrentTarget, Ref, Actor_Health)*Actor_Health_Multiplier;
MaxHP := SmartGetFieldInt(SmartCurrentTarget, Ref, Actor_MaxHealth)*Actor_MaxHealth_Multiplier;
Animation := SmartGetFieldInt(SmartCurrentTarget, Ref, Actor_Animation)*Actor_Animation_Multiplier;
Interacting := SmartGetFieldInt(SmartCurrentTarget, Ref, Actor_Interacting)*Actor_Interacting_Multiplier;
Orientation := Round(FixD(180 + (SmartGetFieldInt(SmartCurrentTarget, Ref, Actor_Orientation)*Actor_Orientation_Multiplier*45)/2048));
Plane := SmartGetFieldInt(SmartCurrentTarget, 0, Client_Plane)*Client_Plane_Multiplier; //uses client's plane it was found on...
Name := R_GetJavaString(PlayerName, 512);
OverheadText := R_GetJavaString(Overhead, 512);
InCombat := (SmartGetFieldInt(SmartCurrentTarget, Ref, Actor_CombatCycle) * Actor_CombatCycle_Multiplier) > LoopCycle;
Tile := Point(x + (SmartGetFieldInt(SmartCurrentTarget, Ref, Actor_LocalX) * Actor_LocalX_Multiplier) div 128, y + (SmartGetFieldInt(SmartCurrentTarget, Ref, Actor_LocalY) * Actor_LocalY_Multiplier) div 128);
TileWalkQueue := Point(SmartGetFieldInt(SmartCurrentTarget, Ref, Actor_PathX), SmartGetFieldInt(SmartCurrentTarget, Ref, Actor_PathY));
end;
SmartFreeObject(SmartCurrentTarget, PlayerName);
SmartFreeObject(SmartCurrentTarget, Ref);
SmartFreeObject(SmartCurrentTarget, Overhead);
end;
end;
function get_CB: integer;
begin
Result := StrToIntDef(GetNumbers(R_GetWidgetText(R_GetWidget(593, 2))), -1);
end;
2014-09-13 13:56:02
2014-09-13 16:15:03
From: tim1142
Would it break the reflection include if i removed the antirandoms folder? I don't want it to detect randoms anymore since they are optional now.
2014-09-13 17:45:49
From: NKN
Why not just keep them in there and not use them..?
2014-09-14 09:55:00
From: tim1142
Would it break the reflection include if i removed the antirandoms folder? I don't want it to detect randoms anymore since they are optional now.
2014-09-14 11:30:14
From: Fitta
Just search through the script and delete all the lines with the following "r_FindNormalRandoms", after that if the script does NOT compile, just pm me the script and I'll happily help you sort it out :)
2014-09-14 11:43:36
From: Fitta
Just search through the script and delete all the lines with the following "r_FindNormalRandoms", after that if the script does NOT compile, just pm me the script and I'll happily help you sort it out :)
2014-09-14 15:59:15
From: tim1142
Okay, I just went through it. Had to remove a few procedures that would call findnormalrandoms, and a procedure that was called like 45 times lol. Thanks for the help, your guidance helped me complete this really quick.
2014-09-14 16:53:52
From: NKN
why does it matter if that's still in the script or not tho.
Does it slow it down that much?
2014-09-17 12:55:04
2014-09-17 14:35:16
2014-09-17 16:24:08
From: Dervish
R_GetSkillLevel or maybe it is R_GetHealth doesn't seem to work, broken hook ?
2014-09-17 16:38:49
if PrayingMelee then
begin
GameTab(tab_Prayer);
Prayer_Mouse('Protect',false);
repeat
Wait(50);
until(R_GetHealth < 13);
Prayer_Mouse('Protect',true);
end; function R_GetHealth: extended;
begin
Result := R_GetSkillLevel(skill_hitpoints);
end; 2014-09-17 18:16:52
From: Dervish
Hmm.. I don't understand why this doesn't work and just loops infinitely then :if PrayingMelee then
begin
GameTab(tab_Prayer);
Prayer_Mouse('Protect',false);
repeat
Wait(50);
until(R_GetHealth < 13);
Prayer_Mouse('Protect',true);
end;
It doesn't seem to detect that current hitpoints are < 13.function R_GetHealth: extended;
begin
Result := R_GetSkillLevel(skill_hitpoints);
end;
Doesn't work so… Where is the problem ? :s
2014-09-18 07:54:41
From: Dervish
Hmm.. I don't understand why this doesn't work and just loops infinitely then :if PrayingMelee then
begin
GameTab(tab_Prayer);
Prayer_Mouse('Protect',false);
repeat
Wait(50);
until(R_GetHealth < 13);
Prayer_Mouse('Protect',true);
end;
It doesn't seem to detect that current hitpoints are < 13.function R_GetHealth: extended;
begin
Result := R_GetSkillLevel(skill_hitpoints);
end;
Doesn't work so… Where is the problem ? :s
function Check_HP: boolean;
begin
if (getHealthPercent < RandomRange(50,70)) then Result := true;
end;
2014-09-18 16:44:19
if PrayingMelee then
begin
GameTab(tab_Prayer);
Prayer_Mouse('Protect',false);
repeat
Wait(50);
Writeln('R_GetHealth says: ' + ToStr(R_GetHealth));
until(Round(R_GetHealth) < 13);
Prayer_Mouse('Protect',true);
end;2014-09-18 17:24:22
2014-09-18 18:06:19
From: darkspell
Reflection hooks are outdated again? Hmm..
2014-09-18 18:43:44
From: NKN
If you could read to me the bottom of the debug log in Simba.
Yeah, the one that says -do not post-, yeah that one.
2014-09-18 19:31:09
From: NKN
If you could read to me the bottom of the debug log in Simba.
Yeah, the one that says -do not post-, yeah that one.
2014-09-18 20:21:22
From: Noob King
Is your updater not being used to maintain the hooks? I thought it was, unless I'm using the wrong one.
2014-09-19 08:54:22
From: NKN
I've never finished an updater completely.
AFAIK, Meerkat had his own that he used, idk if he's still around or if we're just using Cheddy's
2014-09-19 13:27:04
From: NKN
If you could read to me the bottom of the debug log in Simba.
Yeah, the one that says -do not post-, yeah that one.
2014-09-19 16:15:56
From: darkspell
Someone has to urahara-san. Maybe Cheddy is still around to check.
2014-09-19 16:39:22
2014-09-19 16:52:14
{ 207 Hooks Found By Cheddys Updater }
const
ReflectionRevision = '59';
{* BoundaryObject - 9 Hooks *}
BoundaryObject = 'ch';
BoundaryObject_AlternativeOrientation = 'm';
BoundaryObject_AlternativeOrientation_Multiplier = -819118419;
BoundaryObject_BackupRenderable = 'g';
BoundaryObject_Flags = 'o';
BoundaryObject_Flags_Multiplier = -502210369;
BoundaryObject_Hash = 'p';
BoundaryObject_Hash_Multiplier = 2052265757;
BoundaryObject_Orientation = 'w';
BoundaryObject_Orientation_Multiplier = -809690117;
BoundaryObject_Plane = 'k';
BoundaryObject_Plane_Multiplier = -1486221241;
BoundaryObject_Renderable = 'j';
BoundaryObject_Get_X = 'r';
BoundaryObject_Get_X_Multiplier = 1210170359;
BoundaryObject_Get_Y = 'y';
BoundaryObject_Get_Y_Multiplier = 1401870691;
{* Buffer - 2 Hooks *}
Buffer = 'de';
Buffer_Offset = 'r';
Buffer_Offset_Multiplier = 1617124369;
Buffer_Payload = 'k';
{* Cache - 5 Hooks *}
Cache = 'fz';
Cache_CacheableNode = 'k';
Cache_NodeHashTable = 'w';
Cache_Queue = 'm';
Cache_Remaining = 'y';
Cache_Remaining_Multiplier = 1;
Cache_Size = 'r';
Cache_Size_Multiplier = 1;
{* CacheableNode - 2 Hooks *}
CacheableNode = 'fj';
CacheableNode_Next = 'cr';
CacheableNode_Prev = 'cd';
{* Canvas - 1 Hooks *}
Canvas = 'dd';
Canvas_Component = 'k';
{* Actor - 17 Hooks *}
Actor = 'an';
Actor_Animation = 'ao';
Actor_Animation_Multiplier = 296689511;
Actor_CombatCycle = 'ad';
Actor_CombatCycle_Multiplier = 1195205775;
Actor_Health = 'af';
Actor_Health_Multiplier = 722959445;
Actor_HitCycles = 'as';
Actor_HitDamages = 'am';
Actor_HitTypes = 'ae';
Actor_Interacting = 'at';
Actor_Interacting_Multiplier = 1552651505;
Actor_MaxHealth = 'ab';
Actor_MaxHealth_Multiplier = -532478459;
Actor_Orientation = 'bj';
Actor_Orientation_Multiplier = 1018188061;
Actor_PathLength = 'by';
Actor_PathLength_Multiplier = 153678603;
Actor_PathTraversed = 'bt';
Actor_PathX = 'bg';
Actor_PathY = 'bm';
Actor_ActiveText = 'aq';
Actor_LocalX = 'e';
Actor_LocalX_Multiplier = 704794231;
Actor_LocalY = 'a';
Actor_LocalY_Multiplier = -759612205;
Actor_isInSequence = 'aj';
{* Client - 53 Hooks *}
Client = 'client';
Client_BaseX = 'cf.cw';
Client_BaseX_Multiplier = 787673155;
Client_BaseY = 'cr.cu';
Client_BaseY_Multiplier = -2026921865;
Client_CameraPitch = 'bi.fb';
Client_CameraPitch_Multiplier = -479031223;
Client_CameraX = 'client.fs';
Client_CameraX_Multiplier = 437628867;
Client_CameraY = 'ak.fr';
Client_CameraY_Multiplier = -1123306917;
Client_CameraYaw = 'gr.fv';
Client_CameraYaw_Multiplier = -436769289;
Client_CameraZ = 'el.fl';
Client_CameraZ_Multiplier = -403565165;
Client_Canvas = 'ci.pw';
Client_CollisionMaps = 'client.w';
Client_Run_Energy = 'client.jo';
Client_Run_Energy_Multiplier = -570678189;
Client_Experiences = 'client.hs';
Client_LoopCycle = 'client.i';
Client_LoopCycle_Multiplier = -1092411589;
Client_Login_State = 'client.u';
Client_Login_State_Multiplier = 2064132071;
Client_GroundItems = 'client.hg';
Client_ItemDefinitionCache = 'ab.w';
Client_ItemContainerTable = 's.k';
Client_Levels = 'client.hp';
Client_NPCs = 'client.bm';
Client_Player = 'h.hq';
Client_Players = 'client.gc';
Client_LoginState = 'ak.an';
Client_LoginState_Multiplier = 237103599;
Client_CompassAngle = 'client.fg';
Client_CompassAngle_Multiplier = 1654042681;
Client_Map_Offset = 'client.dy';
Client_Map_Offset_Multiplier = 217164645;
Client_Map_Scale = 'client.dj';
Client_Map_Scale_Multiplier = -1656813265;
Client_MenuActions = 'client.iy';
Client_MenuCount = 'client.aa';
Client_MenuCount_Multiplier = 54657429;
Client_MenuHeight = 'cc.il';
Client_MenuHeight_Multiplier = 1475787801;
Client_MenuOptions = 'client.ib';
Client_MenuWidth = 'client.iq';
Client_MenuWidth_Multiplier = 53963819;
Client_MenuX = 'af.hx';
Client_MenuX_Multiplier = -1914796849;
Client_MenuY = 'cb.hw';
Client_MenuY_Multiplier = -364129309;
Client_NPCDefinitionCache = 'aj.y';
Client_NPCIndices = 'client.bx';
Client_ObjectDefinitionCache = 'az.w';
Client_Password = 'ak.ax';
Client_Plane = 's.hv';
Client_Plane_Multiplier = 2117524171;
Client_RealLevels = 'client.hk';
Client_Region = 'd.do';
Client_Settings = 'eo.r';
Client_GroundHeights = 'j.k';
Client_GroundSettings = 'j.r';
Client_Username = 'ak.az';
Client_ValidWidgets = 'ei.r';
Client_Weight = 'client.jg';
Client_Weight_Multiplier = 847921335;
Client_WidgetBoundsHeight = 'client.lw';
Client_WidgetBoundsWidth = 'client.lq';
Client_WidgetBoundsX = 'client.lp';
Client_WidgetBoundsY = 'client.lj';
Client_WidgetNodeTable = 'client.jk';
Client_Widgets = 'en.k';
Client_WidgetSettings = 'eo.y';
Client_WidgetVarps = 'eo.y';
Client_isMenuOpen = 'client.hl';
{* CollisionMap - 1 Hooks *}
CollisionMap = 'ga';
CollisionMap_Flags = 'aw';
{* FloorDecorationObject - 6 Hooks *}
FloorDecorationObject = 'cf';
FloorDecorationObject_Flags = 'j';
FloorDecorationObject_Flags_Multiplier = 1711360093;
FloorDecorationObject_Hash = 'm';
FloorDecorationObject_Hash_Multiplier = -695201075;
FloorDecorationObject_Plane = 'k';
FloorDecorationObject_Plane_Multiplier = -875389279;
FloorDecorationObject_Renderable = 'w';
FloorDecorationObject_Get_X = 'r';
FloorDecorationObject_Get_X_Multiplier = 210733581;
FloorDecorationObject_Get_Y = 'y';
FloorDecorationObject_Get_Y_Multiplier = 1265744713;
{* NodeHashTable - 5 Hooks *}
NodeHashTable = 'fd';
NodeHashTable_Current = 'w';
NodeHashTable_CurrentIndex = 'm';
NodeHashTable_CurrentIndex_Multiplier = 1;
NodeHashTable_Head = 'y';
NodeHashTable_GetNodes = 'r';
NodeHashTable_GetSize = 'k';
NodeHashTable_GetSize_Multiplier = 1;
{* Item - 2 Hooks *}
Item = 'q';
Item_ID = 'k';
Item_ID_Multiplier = 1682086687;
Item_StackSize = 'r';
Item_StackSize_Multiplier = 1210858279;
{* ItemDefinition - 4 Hooks *}
ItemDefinition = 'ab';
ItemDefinition_GroundActions = 'f';
ItemDefinition_Name = 'b';
ItemDefinition_InventoryActions = 'q';
ItemDefinition_isMembers = 'c';
{* ItemContainer - 2 Hooks *}
ItemContainer = 's';
ItemContainer_IDs = 'r';
ItemContainer_StackSizes = 'y';
{* ItemLayer - 8 Hooks *}
ItemLayer = 'ci';
ItemLayer_BottomRenderable = 'w';
ItemLayer_Height = 'p';
ItemLayer_Height_Multiplier = 1735202963;
ItemLayer_ID = 'g';
ItemLayer_ID_Multiplier = 1983940829;
ItemLayer_MiddleRenderable = 'm';
ItemLayer_Plane = 'k';
ItemLayer_Plane_Multiplier = -1117706059;
ItemLayer_TopRenderable = 'j';
ItemLayer_X = 'r';
ItemLayer_X_Multiplier = 212577641;
ItemLayer_Y = 'y';
ItemLayer_Y_Multiplier = 13676537;
{* LinkedList - 2 Hooks *}
LinkedList = 'fi';
LinkedList_Head = 'k';
LinkedList_Tail = 'r';
{* Model - 12 Hooks *}
Model = 'cp';
Model_IndicesX = 'b';
Model_IndicesY = 'x';
Model_IndicesZ = 'n';
Model_TexturedIndicesX = 'd';
Model_TexturedIndicesY = 's';
Model_TexturedIndicesZ = 'v';
Model_TexturedVerticesX = 'b';
Model_TexturedVerticesY = 'x';
Model_TexturedVerticesZ = 'n';
Model_VerticesX = 'j';
Model_VerticesY = 'g';
Model_VerticesZ = 'p';
{* Node - 3 Hooks *}
Node = 'go';
Node_Next = 'ef';
Node_Previous = 'er';
Node_ID = 'dy';
{* NPC - 1 Hooks *}
NPC = 'aw';
NPC_Definition = 'k';
{* NPCDefinition - 7 Hooks *}
NPCDefinition = 'aj';
NPCDefinition_Actions = 'e';
NPCDefinition_Level = 'c';
NPCDefinition_Level_Multiplier = 1235631845;
NPCDefinition_ID = 'm';
NPCDefinition_ID_Multiplier = 318160851;
NPCDefinition_Name = 'j';
NPCDefinition_SettingID = 'av';
NPCDefinition_SettingID_Multiplier = -632881019;
NPCDefinition_TransformIDs = 'ai';
NPCDefinition_VarBitID = 'an';
NPCDefinition_VarBitID_Multiplier = 536366809;
{* ObjectDefinition - 2 Hooks *}
ObjectDefinition = 'az';
ObjectDefinition_Actions = 'al';
ObjectDefinition_Name = 'n';
{* Player - 3 Hooks *}
Player = 'y';
Player_CombatLevel = 'm';
Player_CombatLevel_Multiplier = 275292137;
Player_Model = 'd';
Player_Name = 'k';
{* Queue - 1 Hooks *}
Queue = 'fm';
Queue_Head = 'k';
{* Region - 2 Hooks *}
Region = 'cn';
Region_Objects = 'o';
Region_SceneTiles = 'j';
{* Renderable - 1 Hooks *}
Renderable = 'bx';
Renderable_ModelHeight = 'ch';
Renderable_ModelHeight_Multiplier = -977385459;
{* WorldObject - 12 Hooks *}
WorldObject = 'ck';
WorldObject_Flags = 's';
WorldObject_Flags_Multiplier = -481706441;
WorldObject_Height = 'r';
WorldObject_Height_Multiplier = -1125703737;
WorldObject_Hash = 'd';
WorldObject_Hash_Multiplier = -1206431167;
WorldObject_Orientation = 'm';
WorldObject_Orientation_Multiplier = -1030542201;
WorldObject_Plane = 'k';
WorldObject_Plane_Multiplier = 2093853645;
WorldObject_RelativeX = 'g';
WorldObject_RelativeX_Multiplier = -1597364385;
WorldObject_RelativeY = 'o';
WorldObject_RelativeY_Multiplier = 685933967;
WorldObject_Renderable = 'j';
WorldObject_SizeX = 'p';
WorldObject_SizeX_Multiplier = 895506901;
WorldObject_SizeY = 'b';
WorldObject_SizeY_Multiplier = 967160897;
WorldObject_Get_X = 'y';
WorldObject_Get_X_Multiplier = -390074187;
WorldObject_Get_Y = 'w';
WorldObject_Get_Y_Multiplier = -1184474629;
{* SceneTile - 8 Hooks *}
SceneTile = 'cb';
SceneTile_BoundaryObject = 'g';
SceneTile_FloorDecorationObject = 'o';
SceneTile_ItemLayer = 'b';
SceneTile_Plane = 'w';
SceneTile_Plane_Multiplier = -856405677;
SceneTile_WorldObjects = 'n';
SceneTile_WallObject = 'p';
SceneTile_X = 'r';
SceneTile_X_Multiplier = -1289280687;
SceneTile_Y = 'y';
SceneTile_Y_Multiplier = 693691307;
{* WallObject - 11 Hooks *}
WallObject = 'ca';
WallObject_BackupRenderable = 'o';
WallObject_Flags = 'x';
WallObject_Flags_Multiplier = 2099554427;
WallObject_Height = 'm';
WallObject_Height_Multiplier = -266248503;
WallObject_Hash = 'b';
WallObject_Hash_Multiplier = 723969563;
WallObject_Orientation = 'w';
WallObject_Orientation_Multiplier = -273230309;
WallObject_Plane = 'k';
WallObject_Plane_Multiplier = 1785789031;
WallObject_RelativeX = 'j';
WallObject_RelativeX_Multiplier = 154961493;
WallObject_RelativeY = 'g';
WallObject_RelativeY_Multiplier = -1144849677;
WallObject_Renderable = 'p';
WallObject_X = 'r';
WallObject_X_Multiplier = 1038229795;
WallObject_Y = 'y';
WallObject_Y_Multiplier = -1388658969;
{* Widget - 24 Hooks *}
Widget = 'en';
Widget_GetActions = 'bi';
Widget_BorderThickness = 'am';
Widget_BorderThickness_Multiplier = 928110287;
Widget_BoundsIndex = 'dz';
Widget_BoundsIndex_Multiplier = 1011007915;
Widget_Children = 'di';
Widget_GetItems = 'db';
Widget_Height = 'a';
Widget_Height_Multiplier = 1486275607;
Widget_GetID = 's';
Widget_GetID_Multiplier = 275386787;
Widget_GetIndex = 'v';
Widget_GetIndex_Multiplier = 1117261515;
Widget_ItemID = 'dr';
Widget_ItemID_Multiplier = -1655628037;
Widget_LoopCycleStatus = 'dj';
Widget_LoopCycleStatus_Multiplier = 843259955;
Widget_Name = 'bp';
Widget_GetRelativeX = 'y';
Widget_GetRelativeX_Multiplier = 219780081;
Widget_GetRelativeY = 'h';
Widget_GetRelativeY_Multiplier = 1724903883;
Widget_Root = 'by';
Widget_RootID = 'c';
Widget_RootID_Multiplier = 396507425;
Widget_ScrollX = 'q';
Widget_ScrollX_Multiplier = 759718085;
Widget_ScrollY = 'z';
Widget_ScrollY_Multiplier = -631678375;
Widget_SpriteID = 'null';
Widget_StackSize = 'dk';
Widget_StackSize_Multiplier = 1236267309;
Widget_GetStackSizes = 'do';
Widget_GetText = 'bo';
Widget_GetTextureID = 'null';
Widget_Width = 'e';
Widget_Width_Multiplier = 821762893;
Widget_X = 'i';
Widget_X_Multiplier = -136421911;
Widget_Y = 'x';
Widget_Y_Multiplier = 2130533229;
Widget_isHidden = 'f';
{* WidgetNode - 1 Hooks *}
WidgetNode = 'w';
WidgetNode_ID = 'k';
WidgetNode_ID_Multiplier = 448983669;
2014-09-19 17:40:19
From: Cheddy
2 breaks :/ Probably some other wrong hooks so watch out :fiery:
Hope not one was using Widget#getTextureID or Widget#getSpriteID ;)
Hooks
2014-09-19 18:55:08
2014-09-19 18:56:13
2014-09-20 01:24:16
From: Fitta
Change the rev number :)
2014-09-20 01:28:32
From: darkspell
Where do I do this? I did it to current rev already and still giving me same errors.
2014-09-20 02:04:10
From: darkspell
[Error] \Simba\Includes\SRL-OSR\SRL\Reflection\Core\Player.simba(99:58): Unknown identifier 'client_real_levels' at line 99
[Error] \Simba\Includes\SRL-OSR\SRL\Reflection\Core\Player.simba(22:9): Unknown identifier 'SmartGetFieldObject' at line 22
2014-09-20 03:29:48
2014-09-20 03:34:18
2014-09-20 16:54:19
2014-09-20 18:14:50
From: tim1142
Right now im getting the error that line 515 in misc is out of range. any idea what is causing this? I fixed the hooks and the naming issue with client_real_levels. tried finding the error but i cant.
Error: Out Of Range at line 511
2014-09-21 18:36:58
2014-09-22 00:53:53
From: Annonymus
I don't wanna come over as leecher-ish but I'm just wondering why it didn't auto-update this time, as it auto-updates usually =o
2014-09-22 01:05:57
From: darkspell
Me too, let's just wait for an update by next week.
2014-09-22 10:29:03
From: Annonymus
https://villavu.com/forum/showthread.php?t=107479&page=22&p=1307777#post1307777
Use them, no need to wait.
2014-09-22 12:49:50
From: darkspell
Use what? Those are outdated and there seems to be an error "out of range" when running my scripts also what vizzyy posted.
Client_MenuCount = 'client.iv';
Client_MenuCount_Multiplier = 837382777;
2014-09-24 00:42:36
2014-09-24 03:17:32
From: Krazy_Meerkat
:/ Well this is awkward.. I normally get on the updates v quickly.. Just happened to go AFK for a week the day before an update..
Must confess that I've been losing inspiration lately though.. Invested a lot into making a new updater then realised I was the only one interested.. No help from the forum mods when I asked for a reflection subforum re-vamp, etc. etc..
But I love PascalScript and that's why I came back to srl, I didn't come back to try and take over anything or resume Developing..
I'll update the hooks in a couple of hours when I get back..
I've been speaking with the old reflection dev's about the circumstances surrounding the death of SRL's Reflection 2 and it's been very interesting to say the least.. I was asked not to discuss the details so I will honour that request.
I've really enjoyed the experience from writing an updater and using it for our close-knit reflection user base.. Although NKN might've given up, I am still working on the updater for SRL in private.
Been checking out some of Flight's AL stuff and planning to help him implement reflection into AL :) Time has been short though and I haven't been able to spend as much time as I want on this atm.
I'll be back later to test/update the hooks, but Cheddy deserves thanks for the last hook update (and likely this one)..
I have a more "complete" updater, but I stopped working on it at R42 to start from a clean base. It was frustrating and time-consuming re-writing analysers every update..
2014-09-24 06:35:55
From: Krazy_Meerkat
Must confess that I've been losing inspiration lately though.. Invested a lot into making a new updater then realised I was the only one interested.. No help from the forum mods when I asked for a reflection subforum re-vamp, etc. etc..
2014-09-24 14:34:06
2014-09-24 15:31:31
From: tls
Subforums have already been restructured…like 2 weeks ago. I have offered you the opportunity to contribute multiple times. The last week has been crazy busy for me, so I haven't done much on the include but I have been adding at least one hook a day to the updater.
2014-09-24 15:36:31
From: hoodz
why are you making another include if there is already an include
2014-09-26 05:20:25
2014-09-26 07:41:39
From: hoodz
why are you making another include if there is already an include
2014-09-27 09:41:05
From: Krazy_Meerkat
No help from the forum mods when I asked for a reflection subforum re-vamp, etc. etc..
2014-09-29 04:21:39
{ 207 Hooks Found By Cheddys Updater }
const
ReflectionRevision = '59';
{* BoundaryObject - 9 Hooks *}
BoundaryObject = 'ch';
BoundaryObject_AlternativeOrientation = 'm';
BoundaryObject_AlternativeOrientation_Multiplier = -819118419;
BoundaryObject_BackupRenderable = 'g';
BoundaryObject_Flags = 'o';
BoundaryObject_Flags_Multiplier = -502210369;
BoundaryObject_Hash = 'p';
BoundaryObject_Hash_Multiplier = 2052265757;
BoundaryObject_Orientation = 'w';
BoundaryObject_Orientation_Multiplier = -809690117;
BoundaryObject_Plane = 'k';
BoundaryObject_Plane_Multiplier = -1486221241;
BoundaryObject_Renderable = 'j';
BoundaryObject_Get_X = 'r';
BoundaryObject_Get_X_Multiplier = 1210170359;
BoundaryObject_Get_Y = 'y';
BoundaryObject_Get_Y_Multiplier = 1401870691;
{* Buffer - 2 Hooks *}
Buffer = 'de';
Buffer_Offset = 'r';
Buffer_Offset_Multiplier = 1617124369;
Buffer_Payload = 'k';
{* Cache - 5 Hooks *}
Cache = 'fz';
Cache_CacheableNode = 'k';
Cache_NodeHashTable = 'w';
Cache_Queue = 'm';
Cache_Remaining = 'y';
Cache_Remaining_Multiplier = 1;
Cache_Size = 'r';
Cache_Size_Multiplier = 1;
{* CacheableNode - 2 Hooks *}
CacheableNode = 'fj';
CacheableNode_Next = 'cr';
CacheableNode_Prev = 'cd';
{* Canvas - 1 Hooks *}
Canvas = 'dd';
Canvas_Component = 'k';
{* Actor - 17 Hooks *}
Actor = 'an';
Actor_Animation = 'ao';
Actor_Animation_Multiplier = 296689511;
Actor_CombatCycle = 'ad';
Actor_CombatCycle_Multiplier = 1195205775;
Actor_Health = 'af';
Actor_Health_Multiplier = 722959445;
Actor_HitCycles = 'as';
Actor_HitDamages = 'am';
Actor_HitTypes = 'ae';
Actor_Interacting = 'at';
Actor_Interacting_Multiplier = 1552651505;
Actor_MaxHealth = 'ab';
Actor_MaxHealth_Multiplier = -532478459;
Actor_Orientation = 'bj';
Actor_Orientation_Multiplier = 1018188061;
Actor_PathLength = 'by';
Actor_PathLength_Multiplier = 153678603;
Actor_PathTraversed = 'bt';
Actor_PathX = 'bg';
Actor_PathY = 'bm';
Actor_ActiveText = 'aq';
Actor_LocalX = 'e';
Actor_LocalX_Multiplier = 704794231;
Actor_LocalY = 'a';
Actor_LocalY_Multiplier = -759612205;
Actor_isInSequence = 'aj';
{* Client - 53 Hooks *}
Client = 'client';
Client_BaseX = 'cf.cw';
Client_BaseX_Multiplier = 787673155;
Client_BaseY = 'cr.cu';
Client_BaseY_Multiplier = -2026921865;
Client_CameraPitch = 'bi.fb';
Client_CameraPitch_Multiplier = -479031223;
Client_CameraX = 'client.fs';
Client_CameraX_Multiplier = 437628867;
Client_CameraY = 'ak.fr';
Client_CameraY_Multiplier = -1123306917;
Client_CameraYaw = 'gr.fv';
Client_CameraYaw_Multiplier = -436769289;
Client_CameraZ = 'el.fl';
Client_CameraZ_Multiplier = -403565165;
Client_Canvas = 'ci.pw';
Client_CollisionMaps = 'client.w';
Client_Run_Energy = 'client.jo';
Client_Run_Energy_Multiplier = -570678189;
Client_Experiences = 'client.hs';
Client_LoopCycle = 'client.i';
Client_LoopCycle_Multiplier = -1092411589;
Client_Login_State = 'client.u';
Client_Login_State_Multiplier = 2064132071;
Client_GroundItems = 'client.hg';
Client_ItemDefinitionCache = 'ab.w';
Client_ItemContainerTable = 's.k';
Client_Levels = 'client.hp';
Client_NPCs = 'client.bm';
Client_Player = 'h.hq';
Client_Players = 'client.gc';
Client_LoginState = 'ak.an';
Client_LoginState_Multiplier = 237103599;
Client_CompassAngle = 'client.fg';
Client_CompassAngle_Multiplier = 1654042681;
Client_Map_Offset = 'client.dy';
Client_Map_Offset_Multiplier = 217164645;
Client_Map_Scale = 'client.dj';
Client_Map_Scale_Multiplier = -1656813265;
Client_MenuActions = 'client.iy';
Client_MenuCount = 'client.aa';
Client_MenuCount_Multiplier = 54657429;
Client_MenuHeight = 'cc.il';
Client_MenuHeight_Multiplier = 1475787801;
Client_MenuOptions = 'client.ib';
Client_MenuWidth = 'client.iq';
Client_MenuWidth_Multiplier = 53963819;
Client_MenuX = 'af.hx';
Client_MenuX_Multiplier = -1914796849;
Client_MenuY = 'cb.hw';
Client_MenuY_Multiplier = -364129309;
Client_NPCDefinitionCache = 'aj.y';
Client_NPCIndices = 'client.bx';
Client_ObjectDefinitionCache = 'az.w';
Client_Password = 'ak.ax';
Client_Plane = 's.hv';
Client_Plane_Multiplier = 2117524171;
Client_RealLevels = 'client.hk';
Client_Region = 'd.do';
Client_Settings = 'eo.r';
Client_GroundHeights = 'j.k';
Client_GroundSettings = 'j.r';
Client_Username = 'ak.az';
Client_ValidWidgets = 'ei.r';
Client_Weight = 'client.jg';
Client_Weight_Multiplier = 847921335;
Client_WidgetBoundsHeight = 'client.lw';
Client_WidgetBoundsWidth = 'client.lq';
Client_WidgetBoundsX = 'client.lp';
Client_WidgetBoundsY = 'client.lj';
Client_WidgetNodeTable = 'client.jk';
Client_Widgets = 'en.k';
Client_WidgetSettings = 'eo.y';
Client_WidgetVarps = 'eo.y';
Client_isMenuOpen = 'client.hl';
{* CollisionMap - 1 Hooks *}
CollisionMap = 'ga';
CollisionMap_Flags = 'aw';
{* FloorDecorationObject - 6 Hooks *}
FloorDecorationObject = 'cf';
FloorDecorationObject_Flags = 'j';
FloorDecorationObject_Flags_Multiplier = 1711360093;
FloorDecorationObject_Hash = 'm';
FloorDecorationObject_Hash_Multiplier = -695201075;
FloorDecorationObject_Plane = 'k';
FloorDecorationObject_Plane_Multiplier = -875389279;
FloorDecorationObject_Renderable = 'w';
FloorDecorationObject_Get_X = 'r';
FloorDecorationObject_Get_X_Multiplier = 210733581;
FloorDecorationObject_Get_Y = 'y';
FloorDecorationObject_Get_Y_Multiplier = 1265744713;
{* NodeHashTable - 5 Hooks *}
NodeHashTable = 'fd';
NodeHashTable_Current = 'w';
NodeHashTable_CurrentIndex = 'm';
NodeHashTable_CurrentIndex_Multiplier = 1;
NodeHashTable_Head = 'y';
NodeHashTable_GetNodes = 'r';
NodeHashTable_GetSize = 'k';
NodeHashTable_GetSize_Multiplier = 1;
{* Item - 2 Hooks *}
Item = 'q';
Item_ID = 'k';
Item_ID_Multiplier = 1682086687;
Item_StackSize = 'r';
Item_StackSize_Multiplier = 1210858279;
{* ItemDefinition - 4 Hooks *}
ItemDefinition = 'ab';
ItemDefinition_GroundActions = 'f';
ItemDefinition_Name = 'b';
ItemDefinition_InventoryActions = 'q';
ItemDefinition_isMembers = 'c';
{* ItemContainer - 2 Hooks *}
ItemContainer = 's';
ItemContainer_IDs = 'r';
ItemContainer_StackSizes = 'y';
{* ItemLayer - 8 Hooks *}
ItemLayer = 'ci';
ItemLayer_BottomRenderable = 'w';
ItemLayer_Height = 'p';
ItemLayer_Height_Multiplier = 1735202963;
ItemLayer_ID = 'g';
ItemLayer_ID_Multiplier = 1983940829;
ItemLayer_MiddleRenderable = 'm';
ItemLayer_Plane = 'k';
ItemLayer_Plane_Multiplier = -1117706059;
ItemLayer_TopRenderable = 'j';
ItemLayer_X = 'r';
ItemLayer_X_Multiplier = 212577641;
ItemLayer_Y = 'y';
ItemLayer_Y_Multiplier = 13676537;
{* LinkedList - 2 Hooks *}
LinkedList = 'fi';
LinkedList_Head = 'k';
LinkedList_Tail = 'r';
{* Model - 12 Hooks *}
Model = 'cp';
Model_IndicesX = 'b';
Model_IndicesY = 'x';
Model_IndicesZ = 'n';
Model_TexturedIndicesX = 'd';
Model_TexturedIndicesY = 's';
Model_TexturedIndicesZ = 'v';
Model_TexturedVerticesX = 'b';
Model_TexturedVerticesY = 'x';
Model_TexturedVerticesZ = 'n';
Model_VerticesX = 'j';
Model_VerticesY = 'g';
Model_VerticesZ = 'p';
{* Node - 3 Hooks *}
Node = 'go';
Node_Next = 'ef';
Node_Previous = 'er';
Node_ID = 'dy';
{* NPC - 1 Hooks *}
NPC = 'aw';
NPC_Definition = 'k';
{* NPCDefinition - 7 Hooks *}
NPCDefinition = 'aj';
NPCDefinition_Actions = 'e';
NPCDefinition_Level = 'c';
NPCDefinition_Level_Multiplier = 1235631845;
NPCDefinition_ID = 'm';
NPCDefinition_ID_Multiplier = 318160851;
NPCDefinition_Name = 'j';
NPCDefinition_SettingID = 'av';
NPCDefinition_SettingID_Multiplier = -632881019;
NPCDefinition_TransformIDs = 'ai';
NPCDefinition_VarBitID = 'an';
NPCDefinition_VarBitID_Multiplier = 536366809;
{* ObjectDefinition - 2 Hooks *}
ObjectDefinition = 'az';
ObjectDefinition_Actions = 'al';
ObjectDefinition_Name = 'n';
{* Player - 3 Hooks *}
Player = 'y';
Player_CombatLevel = 'm';
Player_CombatLevel_Multiplier = 275292137;
Player_Model = 'd';
Player_Name = 'k';
{* Queue - 1 Hooks *}
Queue = 'fm';
Queue_Head = 'k';
{* Region - 2 Hooks *}
Region = 'cn';
Region_Objects = 'o';
Region_SceneTiles = 'j';
{* Renderable - 1 Hooks *}
Renderable = 'bx';
Renderable_ModelHeight = 'ch';
Renderable_ModelHeight_Multiplier = -977385459;
{* WorldObject - 12 Hooks *}
WorldObject = 'ck';
WorldObject_Flags = 's';
WorldObject_Flags_Multiplier = -481706441;
WorldObject_Height = 'r';
WorldObject_Height_Multiplier = -1125703737;
WorldObject_Hash = 'd';
WorldObject_Hash_Multiplier = -1206431167;
WorldObject_Orientation = 'm';
WorldObject_Orientation_Multiplier = -1030542201;
WorldObject_Plane = 'k';
WorldObject_Plane_Multiplier = 2093853645;
WorldObject_RelativeX = 'g';
WorldObject_RelativeX_Multiplier = -1597364385;
WorldObject_RelativeY = 'o';
WorldObject_RelativeY_Multiplier = 685933967;
WorldObject_Renderable = 'j';
WorldObject_SizeX = 'p';
WorldObject_SizeX_Multiplier = 895506901;
WorldObject_SizeY = 'b';
WorldObject_SizeY_Multiplier = 967160897;
WorldObject_Get_X = 'y';
WorldObject_Get_X_Multiplier = -390074187;
WorldObject_Get_Y = 'w';
WorldObject_Get_Y_Multiplier = -1184474629;
{* SceneTile - 8 Hooks *}
SceneTile = 'cb';
SceneTile_BoundaryObject = 'g';
SceneTile_FloorDecorationObject = 'o';
SceneTile_ItemLayer = 'b';
SceneTile_Plane = 'w';
SceneTile_Plane_Multiplier = -856405677;
SceneTile_WorldObjects = 'n';
SceneTile_WallObject = 'p';
SceneTile_X = 'r';
SceneTile_X_Multiplier = -1289280687;
SceneTile_Y = 'y';
SceneTile_Y_Multiplier = 693691307;
{* WallObject - 11 Hooks *}
WallObject = 'ca';
WallObject_BackupRenderable = 'o';
WallObject_Flags = 'x';
WallObject_Flags_Multiplier = 2099554427;
WallObject_Height = 'm';
WallObject_Height_Multiplier = -266248503;
WallObject_Hash = 'b';
WallObject_Hash_Multiplier = 723969563;
WallObject_Orientation = 'w';
WallObject_Orientation_Multiplier = -273230309;
WallObject_Plane = 'k';
WallObject_Plane_Multiplier = 1785789031;
WallObject_RelativeX = 'j';
WallObject_RelativeX_Multiplier = 154961493;
WallObject_RelativeY = 'g';
WallObject_RelativeY_Multiplier = -1144849677;
WallObject_Renderable = 'p';
WallObject_X = 'r';
WallObject_X_Multiplier = 1038229795;
WallObject_Y = 'y';
WallObject_Y_Multiplier = -1388658969;
{* Widget - 24 Hooks *}
Widget = 'en';
Widget_GetActions = 'bi';
Widget_BorderThickness = 'am';
Widget_BorderThickness_Multiplier = 928110287;
Widget_BoundsIndex = 'dz';
Widget_BoundsIndex_Multiplier = 1011007915;
Widget_Children = 'di';
Widget_GetItems = 'db';
Widget_Height = 'a';
Widget_Height_Multiplier = 1486275607;
Widget_GetID = 's';
Widget_GetID_Multiplier = 275386787;
Widget_GetIndex = 'v';
Widget_GetIndex_Multiplier = 1117261515;
Widget_ItemID = 'dr';
Widget_ItemID_Multiplier = -1655628037;
Widget_LoopCycleStatus = 'dj';
Widget_LoopCycleStatus_Multiplier = 843259955;
Widget_Name = 'bp';
Widget_GetRelativeX = 'y';
Widget_GetRelativeX_Multiplier = 219780081;
Widget_GetRelativeY = 'h';
Widget_GetRelativeY_Multiplier = 1724903883;
Widget_Root = 'by';
Widget_RootID = 'c';
Widget_RootID_Multiplier = 396507425;
Widget_ScrollX = 'q';
Widget_ScrollX_Multiplier = 759718085;
Widget_ScrollY = 'z';
Widget_ScrollY_Multiplier = -631678375;
Widget_SpriteID = 'null';
Widget_StackSize = 'dk';
Widget_StackSize_Multiplier = 1236267309;
Widget_GetStackSizes = 'do';
Widget_GetText = 'bo';
Widget_GetTextureID = 'null';
Widget_Width = 'e';
Widget_Width_Multiplier = 821762893;
Widget_X = 'i';
Widget_X_Multiplier = -136421911;
Widget_Y = 'x';
Widget_Y_Multiplier = 2130533229;
Widget_isHidden = 'f';
{* WidgetNode - 1 Hooks *}
WidgetNode = 'w';
WidgetNode_ID = 'k';
WidgetNode_ID_Multiplier = 448983669;
2014-09-29 06:42:41
Client_RealLevels = 'client.hk'; -> Client_Real_Levels = 'client.hk';andClient_MenuCount = 'client.iv';
Client_MenuCount_Multiplier = 837382777;
2014-09-29 17:20:43
2014-09-29 17:30:53
From: PatriqDesigns
Is this updated? Says in the code it was last updated today but stuff isnt working rigth, neither R_GetTileGlobal, or R_IsAnimating is working for me :(
2014-09-29 18:18:35
function R_GetUpText: String;
var
Options: TStringArray;
begin
Options := R_GetMenuOptions;
if ((High(Options) - 1) > 0) then
Result := Options[0] + ' / ' + ToStr(High(Options) - 1) + ' more options'
else
Result := Options[0];
if (Result = 'Cancel') then
Result := '';
end;
2014-09-29 19:16:52
From: PatriqDesigns
Anyone else having this kind of error?
Error: Out Of Range at line 509
The following DTMs were not freed: [SRL - Lamp bitmap, SRL - Book of Knowledge, 2]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Minimap Mask bitmap, 3]
the code that is causing it:
function R_GetUpText: String;
var
Options: TStringArray;
begin
Options := R_GetMenuOptions;
if ((High(Options) - 1) > 0) then
Result := Options[0] + ' / ' + ToStr(High(Options) - 1) + ' more options'
else
Result := Options[0];
if (Result = 'Cancel') then
Result := '';
end;
From: Fitta
Someone just pulled an update with non-working hooks?
This is the correct ones.
{ 207 Hooks Found By Cheddys Updater }
const
ReflectionRevision = '59';
{* BoundaryObject - 9 Hooks *}
BoundaryObject = 'ch';
BoundaryObject_AlternativeOrientation = 'm';
BoundaryObject_AlternativeOrientation_Multiplier = -819118419;
BoundaryObject_BackupRenderable = 'g';
BoundaryObject_Flags = 'o';
BoundaryObject_Flags_Multiplier = -502210369;
BoundaryObject_Hash = 'p';
BoundaryObject_Hash_Multiplier = 2052265757;
BoundaryObject_Orientation = 'w';
BoundaryObject_Orientation_Multiplier = -809690117;
BoundaryObject_Plane = 'k';
BoundaryObject_Plane_Multiplier = -1486221241;
BoundaryObject_Renderable = 'j';
BoundaryObject_Get_X = 'r';
BoundaryObject_Get_X_Multiplier = 1210170359;
BoundaryObject_Get_Y = 'y';
BoundaryObject_Get_Y_Multiplier = 1401870691;
{* Buffer - 2 Hooks *}
Buffer = 'de';
Buffer_Offset = 'r';
Buffer_Offset_Multiplier = 1617124369;
Buffer_Payload = 'k';
{* Cache - 5 Hooks *}
Cache = 'fz';
Cache_CacheableNode = 'k';
Cache_NodeHashTable = 'w';
Cache_Queue = 'm';
Cache_Remaining = 'y';
Cache_Remaining_Multiplier = 1;
Cache_Size = 'r';
Cache_Size_Multiplier = 1;
{* CacheableNode - 2 Hooks *}
CacheableNode = 'fj';
CacheableNode_Next = 'cr';
CacheableNode_Prev = 'cd';
{* Canvas - 1 Hooks *}
Canvas = 'dd';
Canvas_Component = 'k';
{* Actor - 17 Hooks *}
Actor = 'an';
Actor_Animation = 'ao';
Actor_Animation_Multiplier = 296689511;
Actor_CombatCycle = 'ad';
Actor_CombatCycle_Multiplier = 1195205775;
Actor_Health = 'af';
Actor_Health_Multiplier = 722959445;
Actor_HitCycles = 'as';
Actor_HitDamages = 'am';
Actor_HitTypes = 'ae';
Actor_Interacting = 'at';
Actor_Interacting_Multiplier = 1552651505;
Actor_MaxHealth = 'ab';
Actor_MaxHealth_Multiplier = -532478459;
Actor_Orientation = 'bj';
Actor_Orientation_Multiplier = 1018188061;
Actor_PathLength = 'by';
Actor_PathLength_Multiplier = 153678603;
Actor_PathTraversed = 'bt';
Actor_PathX = 'bg';
Actor_PathY = 'bm';
Actor_ActiveText = 'aq';
Actor_LocalX = 'e';
Actor_LocalX_Multiplier = 704794231;
Actor_LocalY = 'a';
Actor_LocalY_Multiplier = -759612205;
Actor_isInSequence = 'aj';
{* Client - 53 Hooks *}
Client = 'client';
Client_BaseX = 'cf.cw';
Client_BaseX_Multiplier = 787673155;
Client_BaseY = 'cr.cu';
Client_BaseY_Multiplier = -2026921865;
Client_CameraPitch = 'bi.fb';
Client_CameraPitch_Multiplier = -479031223;
Client_CameraX = 'client.fs';
Client_CameraX_Multiplier = 437628867;
Client_CameraY = 'ak.fr';
Client_CameraY_Multiplier = -1123306917;
Client_CameraYaw = 'gr.fv';
Client_CameraYaw_Multiplier = -436769289;
Client_CameraZ = 'el.fl';
Client_CameraZ_Multiplier = -403565165;
Client_Canvas = 'ci.pw';
Client_CollisionMaps = 'client.w';
Client_Run_Energy = 'client.jo';
Client_Run_Energy_Multiplier = -570678189;
Client_Experiences = 'client.hs';
Client_LoopCycle = 'client.i';
Client_LoopCycle_Multiplier = -1092411589;
Client_Login_State = 'client.u';
Client_Login_State_Multiplier = 2064132071;
Client_GroundItems = 'client.hg';
Client_ItemDefinitionCache = 'ab.w';
Client_ItemContainerTable = 's.k';
Client_Levels = 'client.hp';
Client_NPCs = 'client.bm';
Client_Player = 'h.hq';
Client_Players = 'client.gc';
Client_LoginState = 'ak.an';
Client_LoginState_Multiplier = 237103599;
Client_CompassAngle = 'client.fg';
Client_CompassAngle_Multiplier = 1654042681;
Client_Map_Offset = 'client.dy';
Client_Map_Offset_Multiplier = 217164645;
Client_Map_Scale = 'client.dj';
Client_Map_Scale_Multiplier = -1656813265;
Client_MenuActions = 'client.iy';
Client_MenuCount = 'client.aa';
Client_MenuCount_Multiplier = 54657429;
Client_MenuHeight = 'cc.il';
Client_MenuHeight_Multiplier = 1475787801;
Client_MenuOptions = 'client.ib';
Client_MenuWidth = 'client.iq';
Client_MenuWidth_Multiplier = 53963819;
Client_MenuX = 'af.hx';
Client_MenuX_Multiplier = -1914796849;
Client_MenuY = 'cb.hw';
Client_MenuY_Multiplier = -364129309;
Client_NPCDefinitionCache = 'aj.y';
Client_NPCIndices = 'client.bx';
Client_ObjectDefinitionCache = 'az.w';
Client_Password = 'ak.ax';
Client_Plane = 's.hv';
Client_Plane_Multiplier = 2117524171;
Client_RealLevels = 'client.hk';
Client_Region = 'd.do';
Client_Settings = 'eo.r';
Client_GroundHeights = 'j.k';
Client_GroundSettings = 'j.r';
Client_Username = 'ak.az';
Client_ValidWidgets = 'ei.r';
Client_Weight = 'client.jg';
Client_Weight_Multiplier = 847921335;
Client_WidgetBoundsHeight = 'client.lw';
Client_WidgetBoundsWidth = 'client.lq';
Client_WidgetBoundsX = 'client.lp';
Client_WidgetBoundsY = 'client.lj';
Client_WidgetNodeTable = 'client.jk';
Client_Widgets = 'en.k';
Client_WidgetSettings = 'eo.y';
Client_WidgetVarps = 'eo.y';
Client_isMenuOpen = 'client.hl';
{* CollisionMap - 1 Hooks *}
CollisionMap = 'ga';
CollisionMap_Flags = 'aw';
{* FloorDecorationObject - 6 Hooks *}
FloorDecorationObject = 'cf';
FloorDecorationObject_Flags = 'j';
FloorDecorationObject_Flags_Multiplier = 1711360093;
FloorDecorationObject_Hash = 'm';
FloorDecorationObject_Hash_Multiplier = -695201075;
FloorDecorationObject_Plane = 'k';
FloorDecorationObject_Plane_Multiplier = -875389279;
FloorDecorationObject_Renderable = 'w';
FloorDecorationObject_Get_X = 'r';
FloorDecorationObject_Get_X_Multiplier = 210733581;
FloorDecorationObject_Get_Y = 'y';
FloorDecorationObject_Get_Y_Multiplier = 1265744713;
{* NodeHashTable - 5 Hooks *}
NodeHashTable = 'fd';
NodeHashTable_Current = 'w';
NodeHashTable_CurrentIndex = 'm';
NodeHashTable_CurrentIndex_Multiplier = 1;
NodeHashTable_Head = 'y';
NodeHashTable_GetNodes = 'r';
NodeHashTable_GetSize = 'k';
NodeHashTable_GetSize_Multiplier = 1;
{* Item - 2 Hooks *}
Item = 'q';
Item_ID = 'k';
Item_ID_Multiplier = 1682086687;
Item_StackSize = 'r';
Item_StackSize_Multiplier = 1210858279;
{* ItemDefinition - 4 Hooks *}
ItemDefinition = 'ab';
ItemDefinition_GroundActions = 'f';
ItemDefinition_Name = 'b';
ItemDefinition_InventoryActions = 'q';
ItemDefinition_isMembers = 'c';
{* ItemContainer - 2 Hooks *}
ItemContainer = 's';
ItemContainer_IDs = 'r';
ItemContainer_StackSizes = 'y';
{* ItemLayer - 8 Hooks *}
ItemLayer = 'ci';
ItemLayer_BottomRenderable = 'w';
ItemLayer_Height = 'p';
ItemLayer_Height_Multiplier = 1735202963;
ItemLayer_ID = 'g';
ItemLayer_ID_Multiplier = 1983940829;
ItemLayer_MiddleRenderable = 'm';
ItemLayer_Plane = 'k';
ItemLayer_Plane_Multiplier = -1117706059;
ItemLayer_TopRenderable = 'j';
ItemLayer_X = 'r';
ItemLayer_X_Multiplier = 212577641;
ItemLayer_Y = 'y';
ItemLayer_Y_Multiplier = 13676537;
{* LinkedList - 2 Hooks *}
LinkedList = 'fi';
LinkedList_Head = 'k';
LinkedList_Tail = 'r';
{* Model - 12 Hooks *}
Model = 'cp';
Model_IndicesX = 'b';
Model_IndicesY = 'x';
Model_IndicesZ = 'n';
Model_TexturedIndicesX = 'd';
Model_TexturedIndicesY = 's';
Model_TexturedIndicesZ = 'v';
Model_TexturedVerticesX = 'b';
Model_TexturedVerticesY = 'x';
Model_TexturedVerticesZ = 'n';
Model_VerticesX = 'j';
Model_VerticesY = 'g';
Model_VerticesZ = 'p';
{* Node - 3 Hooks *}
Node = 'go';
Node_Next = 'ef';
Node_Previous = 'er';
Node_ID = 'dy';
{* NPC - 1 Hooks *}
NPC = 'aw';
NPC_Definition = 'k';
{* NPCDefinition - 7 Hooks *}
NPCDefinition = 'aj';
NPCDefinition_Actions = 'e';
NPCDefinition_Level = 'c';
NPCDefinition_Level_Multiplier = 1235631845;
NPCDefinition_ID = 'm';
NPCDefinition_ID_Multiplier = 318160851;
NPCDefinition_Name = 'j';
NPCDefinition_SettingID = 'av';
NPCDefinition_SettingID_Multiplier = -632881019;
NPCDefinition_TransformIDs = 'ai';
NPCDefinition_VarBitID = 'an';
NPCDefinition_VarBitID_Multiplier = 536366809;
{* ObjectDefinition - 2 Hooks *}
ObjectDefinition = 'az';
ObjectDefinition_Actions = 'al';
ObjectDefinition_Name = 'n';
{* Player - 3 Hooks *}
Player = 'y';
Player_CombatLevel = 'm';
Player_CombatLevel_Multiplier = 275292137;
Player_Model = 'd';
Player_Name = 'k';
{* Queue - 1 Hooks *}
Queue = 'fm';
Queue_Head = 'k';
{* Region - 2 Hooks *}
Region = 'cn';
Region_Objects = 'o';
Region_SceneTiles = 'j';
{* Renderable - 1 Hooks *}
Renderable = 'bx';
Renderable_ModelHeight = 'ch';
Renderable_ModelHeight_Multiplier = -977385459;
{* WorldObject - 12 Hooks *}
WorldObject = 'ck';
WorldObject_Flags = 's';
WorldObject_Flags_Multiplier = -481706441;
WorldObject_Height = 'r';
WorldObject_Height_Multiplier = -1125703737;
WorldObject_Hash = 'd';
WorldObject_Hash_Multiplier = -1206431167;
WorldObject_Orientation = 'm';
WorldObject_Orientation_Multiplier = -1030542201;
WorldObject_Plane = 'k';
WorldObject_Plane_Multiplier = 2093853645;
WorldObject_RelativeX = 'g';
WorldObject_RelativeX_Multiplier = -1597364385;
WorldObject_RelativeY = 'o';
WorldObject_RelativeY_Multiplier = 685933967;
WorldObject_Renderable = 'j';
WorldObject_SizeX = 'p';
WorldObject_SizeX_Multiplier = 895506901;
WorldObject_SizeY = 'b';
WorldObject_SizeY_Multiplier = 967160897;
WorldObject_Get_X = 'y';
WorldObject_Get_X_Multiplier = -390074187;
WorldObject_Get_Y = 'w';
WorldObject_Get_Y_Multiplier = -1184474629;
{* SceneTile - 8 Hooks *}
SceneTile = 'cb';
SceneTile_BoundaryObject = 'g';
SceneTile_FloorDecorationObject = 'o';
SceneTile_ItemLayer = 'b';
SceneTile_Plane = 'w';
SceneTile_Plane_Multiplier = -856405677;
SceneTile_WorldObjects = 'n';
SceneTile_WallObject = 'p';
SceneTile_X = 'r';
SceneTile_X_Multiplier = -1289280687;
SceneTile_Y = 'y';
SceneTile_Y_Multiplier = 693691307;
{* WallObject - 11 Hooks *}
WallObject = 'ca';
WallObject_BackupRenderable = 'o';
WallObject_Flags = 'x';
WallObject_Flags_Multiplier = 2099554427;
WallObject_Height = 'm';
WallObject_Height_Multiplier = -266248503;
WallObject_Hash = 'b';
WallObject_Hash_Multiplier = 723969563;
WallObject_Orientation = 'w';
WallObject_Orientation_Multiplier = -273230309;
WallObject_Plane = 'k';
WallObject_Plane_Multiplier = 1785789031;
WallObject_RelativeX = 'j';
WallObject_RelativeX_Multiplier = 154961493;
WallObject_RelativeY = 'g';
WallObject_RelativeY_Multiplier = -1144849677;
WallObject_Renderable = 'p';
WallObject_X = 'r';
WallObject_X_Multiplier = 1038229795;
WallObject_Y = 'y';
WallObject_Y_Multiplier = -1388658969;
{* Widget - 24 Hooks *}
Widget = 'en';
Widget_GetActions = 'bi';
Widget_BorderThickness = 'am';
Widget_BorderThickness_Multiplier = 928110287;
Widget_BoundsIndex = 'dz';
Widget_BoundsIndex_Multiplier = 1011007915;
Widget_Children = 'di';
Widget_GetItems = 'db';
Widget_Height = 'a';
Widget_Height_Multiplier = 1486275607;
Widget_GetID = 's';
Widget_GetID_Multiplier = 275386787;
Widget_GetIndex = 'v';
Widget_GetIndex_Multiplier = 1117261515;
Widget_ItemID = 'dr';
Widget_ItemID_Multiplier = -1655628037;
Widget_LoopCycleStatus = 'dj';
Widget_LoopCycleStatus_Multiplier = 843259955;
Widget_Name = 'bp';
Widget_GetRelativeX = 'y';
Widget_GetRelativeX_Multiplier = 219780081;
Widget_GetRelativeY = 'h';
Widget_GetRelativeY_Multiplier = 1724903883;
Widget_Root = 'by';
Widget_RootID = 'c';
Widget_RootID_Multiplier = 396507425;
Widget_ScrollX = 'q';
Widget_ScrollX_Multiplier = 759718085;
Widget_ScrollY = 'z';
Widget_ScrollY_Multiplier = -631678375;
Widget_SpriteID = 'null';
Widget_StackSize = 'dk';
Widget_StackSize_Multiplier = 1236267309;
Widget_GetStackSizes = 'do';
Widget_GetText = 'bo';
Widget_GetTextureID = 'null';
Widget_Width = 'e';
Widget_Width_Multiplier = 821762893;
Widget_X = 'i';
Widget_X_Multiplier = -136421911;
Widget_Y = 'x';
Widget_Y_Multiplier = 2130533229;
Widget_isHidden = 'f';
{* WidgetNode - 1 Hooks *}
WidgetNode = 'w';
WidgetNode_ID = 'k';
WidgetNode_ID_Multiplier = 448983669;
From: k0p3
Just remember to correct these:andClient_RealLevels = 'client.hk'; -> Client_Real_Levels = 'client.hk';Client_MenuCount = 'client.iv';
Client_MenuCount_Multiplier = 837382777;
2014-09-30 01:38:23
2014-09-30 01:43:51
From: xreflectx
Why does it keep mentioning
[Reflection Anti-Randoms] Detected we are dead, logging out.
2014-09-30 02:10:16
2014-09-30 02:14:56
2014-09-30 02:20:10
From: Cheddy
Me and TLS are working on a lape include https://github.com/tlsdude/OSR-Reflection
We are just making an updater at the minute which is why it is on hold for a bit =)
2014-09-30 06:24:26
2014-09-30 06:45:56
From: Fitta
No more pascalscript?
2014-09-30 08:09:20
2014-09-30 11:45:42
From: Fitta
Indeed. But there's no official includes for Lape yet?
2014-09-30 14:31:47
From: Fitta
Indeed. But there's no official includes for Lape yet?
2014-09-30 14:43:56
From: NKN
The SRL Reflection include is being coded in Lape.
However, I believe there lacks a stable color include for OSRS.
2014-09-30 14:54:06
From: ineedbot
AeroLib seems pretty fine to me for a color include. However do you plan on making the reflection include a standalone? or make it an addon for a different include.
2014-09-30 15:25:59
2014-09-30 15:42:02
From: tls
I would like to correct everyone here. It is not standalone. It requires something to load smart and pass the pointer in setup procedure. You can see how I implemented my standalone smart include in the test scripts.
2014-09-30 15:47:32
From: Brandon
I think they mean that it isn't dependent on other includes.. It does depend on SMART but it's include dependent. It doesn't REQUIRE the OSRS colour include or any other includes to work.. I think that's what they meant.
2014-09-30 16:17:06
From: tls
I'll expound further. It will not include certain functions(login, etc) that a standalone RS include should have. If you want to bot with it, it will require some other include. I guess it just depends on how you define standalone and add-on.
2014-09-30 19:09:09
From: hoodz
if it doesnt support it indeed needs another include.
question: do you know who is writing the osr include for lape?
2014-09-30 20:51:26
2014-10-01 04:50:25
From: tls
Olly is "working" on the combination of osr and rs3 at www.github.com/srl/srl
I made some updater progress today. Got the hooks I need for developing another section of the include. Later on that, I have a concert to go to tonight(The Pretty Reckless, I'm super excited!)
http://rs-hacking.com/forum/index.php?/topic/776-59/page-2#entry7861
2014-10-01 18:02:17
2014-10-01 19:34:59
From: elfyyy
Guys, I'm back from my inactivity from over the summer and will get back to working on, and maintaining the include. We are almost finished with the new updater and will be back to updating the hooks within hours of an update.
Furthermore, this thread is about this include, the "unofficial" reflection include. So if anyone has anything to say concerning the development of the lape include, please refrain from posting here and instead do so on the newly made "official" reflection forum section accordingly.
Thanks a lot and hopefully we can keep this thread on topic!
2014-10-01 19:37:16
From: Dervish
The… lape include ?
2014-10-03 02:13:45
2014-10-03 02:19:40
From: Rules of Joe
Whats the Update On reflection?????
2014-10-03 03:00:25
From: Harrier
Please reflect on this post.
2014-10-03 08:42:24
From: Rules of Joe
Whats the Update On reflection?????
2014-10-03 08:44:27
From: elfyyy
We're not finished on the new updater, so until then it may take us longer than normal to update from an a rs update. Hopefully within the next few weeks we will be back up and running smoothly.
2014-10-03 10:26:20
2014-10-03 10:29:18
From: Rules of Joe
That means it is out of date for the community, but the Dev have a version that is running and are not willing to release it until they think the time is needed. So sit back and wait. <3
2014-10-03 10:32:03
From: elfyyy
We're not finished on the new updater, so until then it may take us longer than normal to update from an a rs update. Hopefully within the next few weeks we will be back up and running smoothly.
2014-10-03 10:34:42
From: Rules of Joe
It says right here they have a version, they just dont want to make a new updater yet. I know how Dev work on SRL, everything is kept in secret. But its already updated and it was conf. in one of the OSR scripts.
2014-10-03 11:34:48
From: Rules of Joe
The Hooks are still not updated when they should have been updated last week. Thats why im asking whats the update on Reflection??
Can i just not comment on unrelevent posts. people ask the dumbest questions. probably dont even know how to write a basic script.
2014-10-03 13:22:42
2014-10-03 13:30:59
2014-10-03 17:41:23
function R_GetPlayerIndex: Integer;
begin
Result := (SmartGetFieldInt(SmartCurrentTarget, 0, 'client.hx') * 1800645115) + 32768;
end;
2014-10-04 02:35:12
2014-10-04 03:35:28
const
ReflectionRevision = '60';
{*Node*}
Node = 'gc';
Node_id = 'dk';
Node_next = 'er';
{*LinkedList*}
LinkedList = 'fx';
LinkedList_head = 'g';
{*Actor*}
Actor = 'aw';
Actor_combatCycle = 'al';
Actor_activeText = 'am';
Actor_animation = 'ar';
Actor_Health = 'ae';
Actor_maxHealth = 'af';
Actor_interacting = 'aj';
Actor_localX = 'm';
Actor_localY = 'o';
{*Actor Multipliers*}
Actor_animation_Multiplier = 1647325343;
Actor_combatCycle_Multiplier = 166319025;
Actor_Health_Multiplier = -1545297959;
Actor_maxHealth_Multiplier = 769152649;
Actor_interacting_Multiplier = -2108972837;
Actor_localX_Multiplier = 171470795;
Actor_localY_Multiplier = 826764905;
{*Item*}
Item = 'w';
Item_id = 'g';
Item_stackSize = 'v';
{*Item Multipliers*}
Item_id_Multiplier = -1672318173;
Item_stackSize_Multiplier = -767037133;
{*ObjectDefinition*}
ObjectDefinition = 'an';
ObjectDefinition_name = 'i';
ObjectDefinition_actions = 'ai';
{*NpcDefinition*}
NpcDefinition = 'av';
NpcDefinition_actions = 'm';
NpcDefinition_name = 'l';
NpcDefinition_id = 'k';
NpcDefinition_level = 'b';
{*NpcDefinition Multipliers*}
NpcDefinition_id_Multiplier = 140673707;
NpcDefinition_level_Multiplier = -1840374219;
{*Npc*}
Npc = 'as';
Npc_definition = 'g';
{*Player*}
Player = 'z';
Player_definition = 'v';
Player_name = 'g';
{*Region*}
Region = 'cm';
Region_sceneTiles = 'l';
{*WallObject*}
WallObject = 'cd';
WallObject_hash = 'f';
{*WallObject Multipliers*}
WallObject_hash_Multiplier = 414599861;
{*FloorDecorationObject*}
FloorDecorationObject = 'cb';
FloorDecorationObject_hash = 'k';
FloorDecorationObject_hash_Multiplier = 1276953639;
{*BoundaryObject*}
BoundaryObject = 'cg';
BoundaryObject_hash = 'j';
{*BoundaryObject Multipliers*}
BoundaryObject_hash_Multiplier = 639818003;
{*SceneTile*}
SceneTile = 'ch';
SceneTile_WorldObjects = 'i';
SceneTile_WallObject = 'j';
SceneTile_BoundaryObject = 'e';
SceneTile_FloorObject = 'n';
{*WorldObject*}
WorldObject = 'cr';
WorldObject_hash = 'y';
WorldObject_Get_x = 'h';
WorldObject_Get_y = 'k';
{*WorldObject Multipliers*}
WorldObject_hash_Multiplier = 380600017;
WorldObject_Get_x_Multiplier = -1568890631;
WorldObject_Get_y_Multiplier = -904730093;
{*Widget*}
Widget = 'eu';
Widget_getRelativeX = 's';
Widget_getRelativeY = 'x';
Widget_getActions = 'bg';
Widget_getID = 'i';
Widget_getItems = 'dp';
Widget_getStackSizes = 'dn';
Widget_getText = 'ba';
Widget_height = 'o';
Widget_width = 'm';
{*Widget Multipliers*}
Widget_getRelativeX_Multiplier = 985647797;
Widget_getRelativeY_Multiplier = 1730176157;
Widget_getID_Multiplier = -1081473899;
Widget_height_Multiplier = 334099177;
Widget_width_Multiplier = -1281443035;
{*Client*}
client_region = 'df.dn';
client_menuCount = 'client.iy';
client_baseY = 'fr.cp';
client_baseX = 'bu.ca';
client_widgets = 'eu.g';
client_menuActions = 'client.im';
client_player = 'h.hc';
client_plane = 'ab.he';
client_groundSettings = 'l.v';
client_groundHeights = 'l.g';
client_menuWidth = 'dd.ik';
client_isMenuOpen = 'client.hw';
client_cameraPitch = 'ej.fd';
client_cameraYaw = 'dk.fg';
client_cameraX = 'ca.fz';
client_cameraY = 'gs.fk';
client_cameraZ = 'g.fp';
client_npcIndices = 'client.bj';
client_npcs = 'client.bb';
client_groundItems = 'client.hz';
client_login_state = 'client.q';
client_settings = 'ez.z';
client_LoopCycle = 'client.r';
client_menuHeight = 'w.id';
client_menuOptions = 'client.if';
client_menuX = 'y.hi';
client_menuY = 'dh.hq';
client_map_scale = 'client.dx';
client_map_offset = 'client.dk';
client_compassAngle = 'client.fv';
client_levels = 'client.hy';
client_real_levels = 'client.ht';
client_experiences = 'client.hp';
client_run_energy = 'client.jj';
client_weight = 'client.jy';
{*Client Multipliers*}
client_menuCount_Multiplier = 391839991;
client_baseY_Multiplier = 263051377;
client_baseX_Multiplier = -1743142671;
client_plane_Multiplier = -570926309;
client_menuWidth_Multiplier = 1703965243;
client_cameraPitch_Multiplier = -611182019;
client_cameraYaw_Multiplier = -1717637923;
client_cameraX_Multiplier = 1217916071;
client_cameraY_Multiplier = 1498802843;
client_cameraZ_Multiplier = 699100371;
client_LoopCycle_Multiplier = -637317861;
client_menuHeight_Multiplier = 720768655;
client_menuX_Multiplier = -745630459;
client_menuY_Multiplier = -740301953;
client_login_state_Multiplier = 1315883169;
client_map_scale_Multiplier = 1889215063;
client_map_offset_Multiplier = 331969371;
client_compassAngle_Multiplier = -44898889;
client_run_energy_Multiplier = -459978045;
client_weight_Multiplier = -409161997;
From: Fitta
function R_GetPlayerIndex: Integer;
begin
Result := (SmartGetFieldInt(SmartCurrentTarget, 0, 'client.hx') * 1800645115) + 32768;
end;
This function needs a hook/hook_multiplier :)
It's the correct hook/multiplier for rev 60.
const
ReflectionRevision = '60';
{*Node*}
Node = 'gc';
Node_id = 'dk';
Node_next = 'er';
{*LinkedList*}
LinkedList = 'fx';
LinkedList_head = 'g';
{*Actor*}
Actor = 'aw';
Actor_combatCycle = 'al';
Actor_activeText = 'am';
Actor_animation = 'ar';
Actor_Health = 'ae';
Actor_maxHealth = 'af';
Actor_interacting = 'aj';
Actor_localX = 'm';
Actor_localY = 'o';
{*Actor Multipliers*}
Actor_animation_Multiplier = 1647325343;
Actor_combatCycle_Multiplier = 166319025;
Actor_Health_Multiplier = -1545297959;
Actor_maxHealth_Multiplier = 769152649;
Actor_interacting_Multiplier = -2108972837;
Actor_localX_Multiplier = 171470795;
Actor_localY_Multiplier = 826764905;
{*Item*}
Item = 'w';
Item_id = 'g';
Item_stackSize = 'v';
{*Item Multipliers*}
Item_id_Multiplier = -1672318173;
Item_stackSize_Multiplier = -767037133;
{*ObjectDefinition*}
ObjectDefinition = 'an';
ObjectDefinition_name = 'i';
ObjectDefinition_actions = 'ai';
{*NpcDefinition*}
NpcDefinition = 'av';
NpcDefinition_actions = 'm';
NpcDefinition_name = 'l';
NpcDefinition_id = 'k';
NpcDefinition_level = 'b';
{*NpcDefinition Multipliers*}
NpcDefinition_id_Multiplier = 140673707;
NpcDefinition_level_Multiplier = -1840374219;
{*Npc*}
Npc = 'as';
Npc_definition = 'g';
{*Player*}
Player = 'z';
Player_definition = 'v';
Player_name = 'g';
{*Region*}
Region = 'cm';
Region_sceneTiles = 'l';
{*WallObject*}
WallObject = 'cd';
WallObject_hash = 'f';
{*WallObject Multipliers*}
WallObject_hash_Multiplier = 414599861;
{*FloorDecorationObject*}
FloorDecorationObject = 'cb';
FloorDecorationObject_hash = 'k';
FloorDecorationObject_hash_Multiplier = 1276953639;
{*BoundaryObject*}
BoundaryObject = 'cg';
BoundaryObject_hash = 'j';
{*BoundaryObject Multipliers*}
BoundaryObject_hash_Multiplier = 639818003;
{*SceneTile*}
SceneTile = 'ch';
SceneTile_WorldObjects = 'i';
SceneTile_WallObject = 'j';
SceneTile_BoundaryObject = 'e';
SceneTile_FloorObject = 'n';
{*WorldObject*}
WorldObject = 'cr';
WorldObject_hash = 'y';
WorldObject_Get_x = 'h';
WorldObject_Get_y = 'k';
{*WorldObject Multipliers*}
WorldObject_hash_Multiplier = 380600017;
WorldObject_Get_x_Multiplier = -1568890631;
WorldObject_Get_y_Multiplier = -904730093;
{*Widget*}
Widget = 'eu';
Widget_getRelativeX = 's';
Widget_getRelativeY = 'x';
Widget_getActions = 'bg';
Widget_getID = 'i';
Widget_getItems = 'dp';
Widget_getStackSizes = 'dn';
Widget_getText = 'ba';
Widget_height = 'o';
Widget_width = 'm';
{*Widget Multipliers*}
Widget_getRelativeX_Multiplier = 985647797;
Widget_getRelativeY_Multiplier = 1730176157;
Widget_getID_Multiplier = -1081473899;
Widget_height_Multiplier = 334099177;
Widget_width_Multiplier = -1281443035;
{*Client*}
client_region = 'df.dn';
client_menuCount = 'client.iy';
client_baseY = 'bu.ca';
client_baseX = 'fr.cp';
client_widgets = 'eu.g';
client_menuActions = 'client.im';
client_player = 'h.hc';
client_plane = 'ab.he';
client_groundSettings = 'l.v';
client_groundHeights = 'l.g';
client_menuWidth = 'dd.ik';
client_isMenuOpen = 'client.hw';
client_cameraPitch = 'ej.fd';
client_cameraYaw = 'dk.fg';
client_cameraX = 'ca.fz';
client_cameraY = 'gs.fk';
client_cameraZ = 'g.fp';
client_npcIndices = 'client.bj';
client_npcs = 'client.bb';
client_groundItems = 'client.hz';
client_login_state = 'client.q';
client_settings = 'ez.z';
client_LoopCycle = 'client.r';
client_menuHeight = 'w.id';
client_menuOptions = 'client.if';
client_menuX = 'y.hi';
client_menuY = 'dh.hq';
client_map_scale = 'client.dx';
client_map_offset = 'client.dk';
client_compassAngle = 'client.fv';
client_levels = 'client.hy';
client_real_levels = 'client.ht';
client_experiences = 'client.hp';
client_run_energy = 'client.jj';
client_weight = 'client.jy';
{*Client Multipliers*}
client_menuCount_Multiplier = 391839991;
client_baseY_Multiplier = -1743142671;
client_baseX_Multiplier = 263051377;
client_plane_Multiplier = -570926309;
client_menuWidth_Multiplier = 1703965243;
client_cameraPitch_Multiplier = -611182019;
client_cameraYaw_Multiplier = -1717637923;
client_cameraX_Multiplier = 1217916071;
client_cameraY_Multiplier = 1498802843;
client_cameraZ_Multiplier = 699100371;
client_LoopCycle_Multiplier = -637317861;
client_menuHeight_Multiplier = 720768655;
client_menuX_Multiplier = -745630459;
client_menuY_Multiplier = -740301953;
client_login_state_Multiplier = 1315883169;
client_map_scale_Multiplier = 1889215063;
client_map_offset_Multiplier = 331969371;
client_compassAngle_Multiplier = -44898889;
client_run_energy_Multiplier = -459978045;
client_weight_Multiplier = -409161997;
2014-10-04 05:48:36
From: Fitta
]
2014-10-04 07:01:11
From: Harrier
I'm guessing you got these from rs-hacking? They quite often get the x/y the wrong way around
Edit; you should also credit who you got the hooks from if so
2014-10-04 10:44:37
From: Fitta
.
2014-10-04 11:39:17
From: elfyyy
Thanks, not sure how that happened! I was tired last night
2014-10-04 12:24:52
2014-10-04 12:34:26
From: Rules of Joe
Thanks For the Fix man! <3 Back to finishing This script. <3
2014-10-04 15:15:48
2014-10-04 16:37:24
From: bas
Walkpath screws up and wont reconise the coords (R_NearTile).
No hate just saying.;)
-Bas.
2014-10-04 17:32:31
From: Frement
Out of curiosity, are you working on a script for OSR or RS3?
2014-10-04 17:49:40
From: elfyyy
Works fine for me
2014-10-04 17:58:26
From: bas
Hmm strange, its randomly working once in X resets.
if R_NearTile(point(3380, 2965), 7) then
begin
CenterToBank;
end;
I've also had this with few other scripts i made that used NearTile.
All seem to bugg out on R_NearTile and walking since yesterday for me.
2014-10-04 18:11:32
From: Interfaced
Set the version of your hooks in Hooks.simba to -1 so it updates from the server, then validate that tile is correct.
2014-10-04 18:15:30
From: basGlad it was sorted out.
Done that, still not working.
EDIT i need to re-grab the coords??
edit1 seems to work, thanks!
2014-10-05 11:42:46
2014-10-07 09:48:58
2014-10-07 10:10:10
From: Shatterhand
client_base x and y hooks are swapped in rev 60. :)
2014-10-07 11:11:19
From: elfyyy
Yup, already fixed, thanks!
2014-10-07 11:15:33
From: Shatterhand
So is camera y and z.
2014-10-07 11:46:47
From: elfyyy
Already fixed as well :P Might need to change the hooks file to a lower rev so it downloads the newest hooks!
2014-10-07 13:18:20
From: Shatterhand
Could you make a different version counter for this? So the users dont have to change numbers and could get fixes automatically.
2014-10-07 16:03:48
From: elfyyy
Yeah. I normally increase the include rev so it automatically downloads the updated include itself but didn't get around to it. I might add in a sub rev number for the hooks though that's a good idea.
2014-10-09 14:16:24
2014-10-09 14:20:31
From: the bank
When did they start including multipliers for the field values?? I'm old school I know but I've never seen that.
Is it the same in RS3? Is finding them as simple as iterating the instructions near the field looking for a "fmul" instruction (multiply 2 floats) ?
2014-10-09 14:26:43
From: tls
I believe it was sometime around rt5 that multipliers were introduced. I currently search for imul and lmul then get the constant and field instructions just before them. They only use multipliers for ints/longs as far as I have seen. It's just multiplication overflow.
2014-10-09 14:42:59
From: the bank
Awesome thanks for the reply, the client is structured so differently than last time I was active in this scene. Just to see how many hooks on my own updater might still even function, I decided to try running it. Hit with my first issue, they encrypt the client in an inner-pack. Was able to steal the decryption function from within one of the classes outside of the inner-pack but it was still a pain in the ass.
I'm sure you all already know all this I just wanted to /vent haha
2014-10-09 15:07:29
From: the bank
Awesome thanks for the reply, the client is structured so differently than last time I was active in this scene. Just to see how many hooks on my own updater might still even function, I decided to try running it. Hit with my first issue, they encrypt the client in an inner-pack. Was able to steal the decryption function from within one of the classes outside of the inner-pack but it was still a pain in the ass.
I'm sure you all already know all this I just wanted to /vent haha
2014-10-09 15:08:24
2014-10-09 16:47:36
From: tls
I believe it was sometime around rt5 that multipliers were introduced. I currently search for imul and lmul then get the constant and field instructions just before them. They only use multipliers for ints/longs as far as I have seen. It's just multiplication overflow.
static int var = 1
var *= 23214322getstatic ldc imul putstatic2014-10-09 17:19:13
From: the bank
Curious, why do you search that way?
In the example:
static int var = 1
var *= 23214322
The bytecode (AFAIK) should just begetstatic ldc imul putstatic
so why don't you search for that? Unless I'm missing something..
somemethod(var * 23214322)
so bytecode is
getstatic ldc imul invokevirtual
Also, they obfuscate the flow. It can be
ldc getstatic imul invokevirtual
2014-10-09 17:40:36
From: tls
They don't set the variable equal to the overflow value. They use it in parameters and local variables.so bytecode is
somemethod(var * 23214322)Also, they obfuscate the flow. It can be
getstatic ldc imul invokevirtual
ldc getstatic imul invokevirtual
2014-10-13 14:47:26
2014-10-13 15:02:18
From: elfyyy
Hooks updated to revision 61 :)
2014-10-14 11:56:25
2014-10-14 12:50:17
From: elfyyy
Hey guys, just wanted to give you guys some updates on the include and what we have been working on and what to expect going forward. We are working on getting our updater up on a server which will be updated with hooks within a few minutes of rs updating in order to have the most up to date hooks possible. I Can't guarantee that we will do this, just wanted to point it out that it is one of our goals. What I have been working on quite a bit lately is rewriting parts of the include to be more efficient and also added a completely new memory management system. I am doing all of this in a separate github located here, as to not mess up any functionalities of the googlecode's include.
The new memory management stores all global object references from the time it is first called, until termination of the script, making much better use of the already called pointer. All of the other objects will also be stored in the array, until the finishing of the individual function, which again increases the speed quite significantly. In the most extreme case, the old way of object finding, in order to gather all objects in the current loaded region which is 104x104 tiles would take around 12 seconds, using the new memory management it takes around 2.5 seconds. Npc finding used to take around 250ms to find all npc's, it now takes ~30ms.
Using this method also cuts down on potential memory leaks to the point where they aren't even a factor anymore, due to the fact that unless a old object reference is overwritten, it will always be free'd, if not during runtime, then upon termination of the script. Also, the references to the pointers are done using enums instead of integers, which are smaller(1 byte compared to 4), which also improves efficiency.
So until the includes are merged, feel free to test out the include on my github, but ofc note, I am constantly changing stuff, so it may or may not always be stable and what not.
2014-10-14 13:27:32
From: Fitta
Please don't change too many function/procedure names!
Also, loving the work, keep it up :f:
2014-10-17 18:14:12
2014-10-30 17:01:17
2014-11-06 14:26:15
2014-11-08 13:37:46
function R_WaitChooseOption(Option: String; Time: Integer): Boolean;
var
T: Integer;
begin
Result := False;
T := GetSystemTime + Time;
while (GetSystemTime < T) do
begin
if (R_IsMenuOpen) then
begin
Result := R_ChooseOption(Option);
Exit;
end;
Wait(20 + Random(20));
end;
end;
2014-11-08 13:40:54
From: Fitta
function R_WaitChooseOption(Option: String; Time: Integer): Boolean;
var
T: Integer;
begin
Result := False;
T := GetSystemTime + Time;
while (GetSystemTime < T) do
begin
if (R_IsMenuOpen) then
begin
Result := R_ChooseOption(Option);
Exit;
end;
Wait(20 + Random(20));
end;
end;
Urgent!! -> as atm it always return true, fix is above.
EDIT:
Also, seems like it doesn't matter how much I post about fixes, nobody seems to add/tweak them?
2014-11-08 13:51:08
2014-11-08 13:52:29
From: Fitta
Excuse me for trying to help you guys..
I've posted quite a lot of urgent stuff and nobody has made a comment about anything, therefor I had to ask. It was nothing personal at all, just wondering. Please calm down.
2014-11-08 13:53:58
function R_GetPlayerIndex: Integer;
begin
Result := (SmartGetFieldInt(SmartCurrentTarget, 0, 'client.hx') * 1800645115) + 32768;
end;
2014-11-08 13:58:06
From: Fitta
page 26
function R_GetPlayerIndex: Integer;
begin
Result := (SmartGetFieldInt(SmartCurrentTarget, 0, 'client.hx') * 1800645115) + 32768;
end;
This function has no global hook.
2014-11-08 14:32:34
From: elfyyy
Oh I guess Frement added it when we were testing anti randoms. I'll just remove the whole function since I doubt people will use it for anything other than that, as you can just get the interacting index of the npc. If not I can add the hook to our updater if you find use in it?
2014-11-09 16:09:52
From: Fitta
There is use for it! I use it heavily in all my combat scripts. Please if you don't mind keep it!
AbstractInsnNode[] patPlayerIndex = new AbstractInsnNode[] {
new FieldInsnNode(GETSTATIC, "client", null, "I"),
new InsnNode(IMUL),
new IntInsnNode(BIPUSH, 8),
new InsnNode(ISHL),
new InsnNode(IMUL),
new FieldInsnNode(PUTSTATIC, "client", null, "I")
};
2014-11-13 12:26:46
2014-11-13 12:31:43
From: tsacmoc
"Reflection Hooks are outdated
No need to post about it, we are currently working on it. ~ Reflection dev's"
am i supposed to be getting this msg?
2014-11-13 12:32:09
From: tsacmoc
"Reflection Hooks are outdated
No need to post about it, we are currently working on it. ~ Reflection dev's"
am i supposed to be getting this msg?
2014-11-13 12:34:38
2014-11-13 19:50:00
2014-11-13 20:18:25
From: elfyyy
Hooks update to revision 65.
Sorry it took so long, had class all day :'(
2014-11-13 20:34:51
From: Fitta
How is 13 hours long? I'd say that's rather quick and smooth to be honest :)
btw, do you mind pm'ing your skype?
2014-11-15 09:45:49
{ 443 Hooks Found By Cheddy's PiUpdater }
const
ReflectionRevision = '65';
{* AccessFile - 3 Hooks *}
AccessFile = 'gv';
AccessFile_File = 'n';
AccessFile_Length = 'x';
AccessFile_Length_Multiplier = 7283964095786905305;
AccessFile_Position = 'k';
AccessFile_Position_Multiplier = 1;
{* AnimableNode - 7 Hooks *}
AnimableNode = 'o';
AnimableNode_Animation = 'm';
AnimableNode_ID = 'n';
AnimableNode_ID_Multiplier = -812187483;
AnimableNode_Orientation = 'k';
AnimableNode_Orientation_Multiplier = 589234209;
AnimableNode_Plane = 'i';
AnimableNode_Plane_Multiplier = 468999745;
AnimableNode_Type = 'x';
AnimableNode_Type_Multiplier = -134579313;
AnimableNode_X = 'd';
AnimableNode_X_Multiplier = -218029179;
AnimableNode_Y = 'q';
AnimableNode_Y_Multiplier = 902625265;
{* AnimationSequence - 10 Hooks *}
AnimationSequence = 'as';
AnimationSequence_FlowControl = 'o';
AnimationSequence_Frame1IDs = 'q';
AnimationSequence_Frame2IDs = 'a';
AnimationSequence_FrameStep = 'e';
AnimationSequence_FrameStep_Multiplier = -455715935;
AnimationSequence_MaxLoops = 'c';
AnimationSequence_MaxLoops_Multiplier = -1897252859;
AnimationSequence_MinLoops = 'r';
AnimationSequence_MinLoops_Multiplier = -895486663;
AnimationSequence_PrecedenceAnimation = 'u';
AnimationSequence_PrecedenceAnimation_Multiplier = 548503553;
AnimationSequence_Priority = 'h';
AnimationSequence_Priority_Multiplier = 1829000027;
AnimationSequence_ReplyMode = 't';
AnimationSequence_ReplyMode_Multiplier = 692880611;
AnimationSequence_isStretched = 'v';
{* BoundaryObject - 9 Hooks *}
BoundaryObject = 'cg';
BoundaryObject_AlternativeOrientation = 'd';
BoundaryObject_AlternativeOrientation_Multiplier = -1511456135;
BoundaryObject_BackupRenderable = 'm';
BoundaryObject_Flags = 'w';
BoundaryObject_Flags_Multiplier = 1796555687;
BoundaryObject_Hash = 'a';
BoundaryObject_Hash_Multiplier = -238959213;
BoundaryObject_Orientation = 'i';
BoundaryObject_Orientation_Multiplier = -394024461;
BoundaryObject_Plane = 'n';
BoundaryObject_Plane_Multiplier = -428760937;
BoundaryObject_Renderable = 'q';
BoundaryObject_Get_X = 'k';
BoundaryObject_Get_X_Multiplier = 2081062601;
BoundaryObject_Get_Y = 'x';
BoundaryObject_Get_Y_Multiplier = -1441314441;
{* Buffer - 2 Hooks *}
Buffer = 'dw';
Buffer_Offset = 'x';
Buffer_Offset_Multiplier = 736769211;
Buffer_Payload = 'n';
{* BufferedConnection - 5 Hooks *}
BufferedConnection = 'dd';
BufferedConnection_InputStream = 'n';
BufferedConnection_OutputStream = 'x';
BufferedConnection_Payload = 'm';
BufferedConnection_Socket = 'k';
BufferedConnection_isClosed = 'i';
{* Cache - 5 Hooks *}
Cache = 'fh';
Cache_CacheableNode = 'n';
Cache_NodeHashTable = 'i';
Cache_Queue = 'd';
Cache_Remaining = 'k';
Cache_Remaining_Multiplier = 1;
Cache_Size = 'x';
Cache_Size_Multiplier = 1;
{* CacheableNode - 2 Hooks *}
CacheableNode = 'gr';
CacheableNode_Next = 'cs';
CacheableNode_Prev = 'cb';
{* Canvas - 1 Hooks *}
Canvas = 'dg';
Canvas_Component = 'n';
{* Actor - 17 Hooks *}
Actor = 'av';
Actor_Animation = 'bf';
Actor_Animation_Multiplier = 592229547;
Actor_CombatCycle = 'aq';
Actor_CombatCycle_Multiplier = -111155305;
Actor_Health = 'an';
Actor_Health_Multiplier = -728238545;
Actor_HitCycles = 'ag';
Actor_HitDamages = 'az';
Actor_HitTypes = 'ao';
Actor_Interacting = 'ap';
Actor_Interacting_Multiplier = 1744380331;
Actor_MaxHealth = 'ax';
Actor_MaxHealth_Multiplier = -1437565613;
Actor_Orientation = 'bq';
Actor_Orientation_Multiplier = 1619823327;
Actor_PathLength = 'bc';
Actor_PathLength_Multiplier = 705496411;
Actor_PathTraversed = 'bm';
Actor_PathX = 'bp';
Actor_PathY = 'bz';
Actor_ActiveText = 'at';
Actor_LocalX = 'g';
Actor_LocalX_Multiplier = -1690539899;
Actor_LocalY = 's';
Actor_LocalY_Multiplier = -340252003;
Actor_isInSequence = 'p';
{* ChatboxMessage - 6 Hooks *}
ChatboxMessage = 'ay';
ChatboxMessage_ClanName = 'd';
ChatboxMessage_ID = 'n';
ChatboxMessage_ID_Multiplier = -1974498873;
ChatboxMessage_PlayerName = 'i';
ChatboxMessage_Text = 'q';
ChatboxMessage_TimeSent = 'x';
ChatboxMessage_TimeSent_Multiplier = -1551332889;
ChatboxMessage_Type = 'k';
ChatboxMessage_Type_Multiplier = 1605873655;
{* ClassData - 3 Hooks *}
ClassData = 'gm';
ClassData_Data = 'm';
ClassData_Fields = 'd';
ClassData_Methods = 'a';
{* Client - 84 Hooks *}
Client = 'client';
Client_AnimationSequenceCache = 'as.i';
Client_BaseX = 'cz.cp';
Client_BaseX_Multiplier = -499664201;
Client_BaseY = 'aq.cz';
Client_BaseY_Multiplier = 2016335859;
Client_CameraPitch = 'ak.fu';
Client_CameraPitch_Multiplier = -291086405;
Client_CameraPitchMinimum = 'client.fe';
Client_CameraPitchMinimum_Multiplier = -2009152535;
Client_CameraX = 'do.fy';
Client_CameraX_Multiplier = -320921259;
Client_CameraY = 'av.fl';
Client_CameraY_Multiplier = 395996553;
Client_CameraYaw = 'm.fg';
Client_CameraYaw_Multiplier = 1054913793;
Client_CameraZ = 'bt.fz';
Client_CameraZ_Multiplier = 923000167;
Client_Canvas = 'm.pp';
Client_CollisionMaps = 'client.w';
Client_CosineCurve = 'cc.ay';
Client_CurrentWorldID = 'client.d';
Client_CurrentWorldID_Multiplier = -2077895623;
Client_DestinationX = 'client.mq';
Client_DestinationX_Multiplier = -1072680707;
Client_DestinationY = 'client.md';
Client_DestinationY_Multiplier = -1785231337;
Client_Run_Energy = 'client.je';
Client_Run_Energy_Multiplier = -62802767;
Client_Experiences = 'client.hu';
Client_FirstMenuOption = 'et.is';
Client_LoopCycle = 'client.h';
Client_LoopCycle_Multiplier = 1308178505;
Client_Login_State = 'client.c';
Client_Login_State_Multiplier = 346046433;
Client_GroundItemList = 'client.hs';
Client_IdleTime = 'dy.i';
Client_IdleTime_Multiplier = 1;
Client_ItemDefinintionCache = 'an.i';
Client_ItemModelCache = 'an.d';
Client_LastClickTime = 'dy.v';
Client_LastClickTime_Multiplier = 192837221790910297;
Client_LastClickX = 'dy.e';
Client_LastClickX_Multiplier = 1727757979;
Client_LastClickY = 'dy.o';
Client_LastClickY_Multiplier = -1736437557;
Client_LastMouseClickButton = 'dy.d';
Client_LastMouseClickButton_Multiplier = -679637275;
Client_LastMouseClickModifier = 'dy.w';
Client_LastMouseClickModifier_Multiplier = 1107108155;
Client_Levels = 'client.hz';
Client_NPCs = 'client.bp';
Client_Player = 'cp.ht';
Client_PlayerIndex = 'client.hf';
Client_PlayerIndex_Multiplier = 1451705515;
Client_Players = 'client.gc';
Client_LoginState = 'aa.av';
Client_LoginState_Multiplier = -842222665;
Client_CompassAngle = 'client.fw';
Client_CompassAngle_Multiplier = -1574256657;
Client_Map_Offset = 'client.dd';
Client_Map_Offset_Multiplier = 1324243183;
Client_Map_Scale = 'client.dz';
Client_Map_Scale_Multiplier = -156557579;
Client_MenuActions = 'client.io';
Client_MenuCount = 'client.ij';
Client_MenuCount_Multiplier = 1474678787;
Client_MenuHeight = 'bf.is';
Client_MenuHeight_Multiplier = 57876773;
Client_MenuOptions = 'client.ip';
Client_MenuWidth = 'ax.if';
Client_MenuWidth_Multiplier = -739304797;
Client_MenuX = 'dv.hp';
Client_MenuX_Multiplier = -805974663;
Client_MenuY = 'e.hy';
Client_MenuY_Multiplier = 1441691125;
Client_Mouse = 'dy.n';
Client_MouseX = 'dy.q';
Client_MouseX_Multiplier = -1718608747;
Client_MouseY = 'dy.m';
Client_MouseY_Multiplier = -105845879;
Client_NPCDefinitionCache = 'af.k';
Client_NPCIndices = 'client.bm';
Client_NPCModelCache = 'af.i';
Client_ObjectAnimatedModelCache = 'ae.m';
Client_ObjectDefinitionCache = 'ae.i';
Client_ObjectModelCache = 'ae.d';
Client_ObjectRenderableCache = 'ae.q';
Client_Password = 'aa.as';
Client_Plane = 'd.hj';
Client_Plane_Multiplier = 852571267;
Client_PlayerModelCache = 'fy.v';
Client_ProjectileList = 'client.hg';
Client_Real_Levels = 'client.hm';
Client_Region = 'aq.dh';
Client_RGBImageCache = 'an.q';
Client_SelectedItemName = 'client.it';
Client_SelectedSpellName = 'client.js';
Client_Settings = 'er.x';
Client_SineCurve = 'cc.aw';
Client_GroundHeights = 'q.n';
Client_GroundSettings = 'q.x';
Client_Username = 'aa.ai';
Client_ValidWidgets = 'ep.k';
Client_VarpbitCache = 'ao.x';
Client_VarpbitSettings = 'er.n';
Client_Weight = 'client.jl';
Client_Weight_Multiplier = -652607075;
Client_WidgetBoundsHeight = 'client.lu';
Client_WidgetBoundsWidth = 'client.lm';
Client_WidgetBoundsX = 'client.lh';
Client_WidgetBoundsY = 'client.lb';
Client_WidgetItemTable = 'j.n';
Client_WidgetNodeTable = 'client.jd';
Client_Widgets = 'ep.n';
Client_WidgetSettings = 'er.k';
Client_Worlds = 'cv.bb';
Client_isMenuOpen = 'client.hr';
Client_isWorldSelectorOpen = 'aa.ap';
{* CollisionMap - 5 Hooks *}
CollisionMap = 'gy';
CollisionMap_Flags = 'ak';
CollisionMap_Height = 'ar';
CollisionMap_Height_Multiplier = 522310721;
CollisionMap_OffsetX = 'l';
CollisionMap_OffsetX_Multiplier = -520790741;
CollisionMap_OffsetY = 'al';
CollisionMap_OffsetY_Multiplier = 1807733409;
CollisionMap_Width = 'aa';
CollisionMap_Width_Multiplier = 1470394689;
{* ComplexTile - 1 Hooks *}
ComplexTile = 'cd';
ComplexTile_isFlat = 'o';
{* FloorDecorationObject - 6 Hooks *}
FloorDecorationObject = 'ch';
FloorDecorationObject_Flags = 'q';
FloorDecorationObject_Flags_Multiplier = 702102689;
FloorDecorationObject_Hash = 'd';
FloorDecorationObject_Hash_Multiplier = 130748493;
FloorDecorationObject_Plane = 'n';
FloorDecorationObject_Plane_Multiplier = 2103220875;
FloorDecorationObject_Renderable = 'i';
FloorDecorationObject_Get_X = 'k';
FloorDecorationObject_Get_X_Multiplier = 758653411;
FloorDecorationObject_Get_Y = 'x';
FloorDecorationObject_Get_Y_Multiplier = -605756285;
{* GenericTile - 1 Hooks *}
GenericTile = 'cs';
GenericTile_isFlat = 'q';
{* NodeHashTable - 5 Hooks *}
NodeHashTable = 'fd';
NodeHashTable_Current = 'i';
NodeHashTable_CurrentIndex = 'd';
NodeHashTable_CurrentIndex_Multiplier = 1;
NodeHashTable_Head = 'k';
NodeHashTable_GetNodes = 'x';
NodeHashTable_GetSize = 'n';
NodeHashTable_GetSize_Multiplier = 1;
{* WorldObject - 12 Hooks *}
WorldObject = 'cq';
WorldObject_Flags = 'j';
WorldObject_Flags_Multiplier = 1438568363;
WorldObject_Height = 'k';
WorldObject_Height_Multiplier = -1936186339;
WorldObject_Hash = 'z';
WorldObject_Hash_Multiplier = 620452503;
WorldObject_Orientation = 'q';
WorldObject_Orientation_Multiplier = 1124443433;
WorldObject_Plane = 'n';
WorldObject_Plane_Multiplier = 983356639;
WorldObject_RelativeX = 'm';
WorldObject_RelativeX_Multiplier = 1656569195;
WorldObject_RelativeY = 'w';
WorldObject_RelativeY_Multiplier = 1603314193;
WorldObject_Renderable = 'd';
WorldObject_SizeX = 'a';
WorldObject_SizeX_Multiplier = 1065419227;
WorldObject_SizeY = 'e';
WorldObject_SizeY_Multiplier = 1311664237;
WorldObject_Get_X = 'i';
WorldObject_Get_X_Multiplier = -433338945;
WorldObject_Get_Y = 'x';
WorldObject_Get_Y_Multiplier = 461504359;
{* Item - 2 Hooks *}
Item = 'b';
Item_ID = 'n';
Item_ID_Multiplier = -108747091;
Item_StackSize = 'x';
Item_StackSize_Multiplier = 474329423;
{* ItemDefinition - 38 Hooks *}
ItemDefinition = 'an';
ItemDefinition_DiagonalRotation = 'h';
ItemDefinition_DiagonalRotation_Multiplier = 1178257721;
ItemDefinition_FemaleDialogue = 'ae';
ItemDefinition_FemaleDialogue_Multiplier = -723895155;
ItemDefinition_FemaleDialogueHat = 'ai';
ItemDefinition_FemaleDialogueHat_Multiplier = -612568821;
ItemDefinition_FemaleEmblem = 'av';
ItemDefinition_FemaleEmblem_Multiplier = -2105404479;
ItemDefinition_FemaleEquipOffset = 'ay';
ItemDefinition_FemaleEquipOffset_Multiplier = 880768817;
ItemDefinition_FemaleEquipPrimaryModel = 'ar';
ItemDefinition_FemaleEquipPrimaryModel_Multiplier = -113836729;
ItemDefinition_FemaleEquipSecondaryModel = 'ak';
ItemDefinition_FemaleEquipSecondaryModel_Multiplier = -1656452333;
ItemDefinition_GroundActions = 'p';
ItemDefinition_LightModifier = 'an';
ItemDefinition_LightModifier_Multiplier = -994159053;
ItemDefinition_MaleDialogue = 'at';
ItemDefinition_MaleDialogue_Multiplier = 256046569;
ItemDefinition_MaleDialogueHat = 'af';
ItemDefinition_MaleDialogueHat_Multiplier = 930664111;
ItemDefinition_MaleEmblem = 'aw';
ItemDefinition_MaleEmblem_Multiplier = 4704971;
ItemDefinition_MaleEquipOffset = 'aa';
ItemDefinition_MaleEquipOffset_Multiplier = 1958206685;
ItemDefinition_MaleEquipPrimaryModel = 'l';
ItemDefinition_MaleEquipPrimaryModel_Multiplier = 1843016025;
ItemDefinition_MaleEquipSecondaryModel = 'al';
ItemDefinition_MaleEquipSecondaryModel_Multiplier = 416411009;
ItemDefinition_ModelColours = 'o';
ItemDefinition_ModelID = 'w';
ItemDefinition_ModelID_Multiplier = 1668566381;
ItemDefinition_ModelOffset = 't';
ItemDefinition_ModelOffset_Multiplier = -2032293311;
ItemDefinition_ModelSizeX = 'ao';
ItemDefinition_ModelSizeX_Multiplier = -1806011351;
ItemDefinition_ModelSizeY = 'ag';
ItemDefinition_ModelSizeY_Multiplier = -630371437;
ItemDefinition_ModelSizeZ = 'aq';
ItemDefinition_ModelSizeZ_Multiplier = 297563363;
ItemDefinition_ModelTextures = 'z';
ItemDefinition_ModelZoom = 'r';
ItemDefinition_ModelZoom_Multiplier = 1149990379;
ItemDefinition_ModifiedModelColours = 'v';
ItemDefinition_ModifiedModelTextures = 'j';
ItemDefinition_Name = 'e';
ItemDefinition_NoteIndex = 'au';
ItemDefinition_NoteIndex_Multiplier = -1895896107;
ItemDefinition_NoteTemplateIndex = 'az';
ItemDefinition_NoteTemplateIndex_Multiplier = 640909611;
ItemDefinition_Rotation1 = 'c';
ItemDefinition_Rotation1_Multiplier = -2032950317;
ItemDefinition_Rotation2 = 'u';
ItemDefinition_Rotation2_Multiplier = -1786902161;
ItemDefinition_ShadowModifier = 'ax';
ItemDefinition_ShadowModifier_Multiplier = 1388772907;
ItemDefinition_Sine = 'f';
ItemDefinition_Sine_Multiplier = 1149871571;
ItemDefinition_StackableAmmounts = 'aj';
ItemDefinition_StackableIDs = 'as';
ItemDefinition_TeamIndex = 'ap';
ItemDefinition_TeamIndex_Multiplier = 205759575;
ItemDefinition_Value = 's';
ItemDefinition_Value_Multiplier = -1513265935;
ItemDefinition_InventoryActions = 'b';
ItemDefinition_isMembers = 'y';
{* ItemLayer - 8 Hooks *}
ItemLayer = 'cj';
ItemLayer_BottomRenderable = 'i';
ItemLayer_Height = 'a';
ItemLayer_Height_Multiplier = 531112753;
ItemLayer_ID = 'm';
ItemLayer_ID_Multiplier = 1477854209;
ItemLayer_MiddleRenderable = 'd';
ItemLayer_Plane = 'n';
ItemLayer_Plane_Multiplier = 139213215;
ItemLayer_TopRenderable = 'q';
ItemLayer_X = 'k';
ItemLayer_X_Multiplier = 520766133;
ItemLayer_Y = 'x';
ItemLayer_Y_Multiplier = 1409516503;
{* LinkedList - 2 Hooks *}
LinkedList = 'fx';
LinkedList_Head = 'n';
LinkedList_Tail = 'x';
{* Model - 15 Hooks *}
Model = 'cy';
Model_IndicesLength = 'w';
Model_IndicesLength_Multiplier = 1;
Model_IndicesX = 'e';
Model_IndicesY = 'o';
Model_IndicesZ = 'v';
Model_TexturedIndicesX = 'z';
Model_TexturedIndicesY = 'j';
Model_TexturedIndicesZ = 'r';
Model_TexturedVerticesLength = 'g';
Model_TexturedVerticesLength_Multiplier = 1;
Model_TexturedVerticesX = 's';
Model_TexturedVerticesY = 'y';
Model_TexturedVerticesZ = 'p';
Model_VerticesLength = 'd';
Model_VerticesLength_Multiplier = 1;
Model_VerticesX = 'q';
Model_VerticesY = 'm';
Model_VerticesZ = 'a';
{* ModelHeader - 0 Hooks *}
ModelHeader = 'cx';
{* MouseCapturer - 5 Hooks *}
MouseCapturer = 'v';
MouseCapturer_Length = 'k';
MouseCapturer_Length_Multiplier = -57552945;
MouseCapturer_Lock = 'x';
MouseCapturer_TrackingX = 'i';
MouseCapturer_TrackingY = 'd';
MouseCapturer_isCapturing = 'n';
{* MouseListener - 0 Hooks *}
MouseListener = 'dy';
{* Node - 3 Hooks *}
Node = 'ga';
Node_Next = 'em';
Node_Previous = 'eg';
Node_ID = 'dd';
Node_ID_Multiplier = 1;
{* NPC - 1 Hooks *}
NPC = 'ak';
NPC_Definition = 'n';
{* NPCDefinition - 27 Hooks *}
NPCDefinition = 'af';
NPCDefinition_Actions = 'g';
NPCDefinition_BoundaryObjectDimension = 'm';
NPCDefinition_BoundaryObjectDimension_Multiplier = 1419574127;
NPCDefinition_Brightness = 'al';
NPCDefinition_Brightness_Multiplier = -1546472357;
NPCDefinition_Level = 'y';
NPCDefinition_Level_Multiplier = 1898453373;
NPCDefinition_Contrast = 'aa';
NPCDefinition_Contrast_Multiplier = 2049495097;
NPCDefinition_DegreesToTurn = 'ak';
NPCDefinition_DegreesToTurn_Multiplier = 1307141649;
NPCDefinition_HeadIcon = 'ar';
NPCDefinition_HeadIcon_Multiplier = -1172162869;
NPCDefinition_ID = 'd';
NPCDefinition_ID_Multiplier = 543879159;
NPCDefinition_ModelColours = 'u';
NPCDefinition_ModelIDs = 'a';
NPCDefinition_ModelTextures = 't';
NPCDefinition_ModifiedModelColours = 'h';
NPCDefinition_ModifiedModelTextures = 'f';
NPCDefinition_Name = 'q';
NPCDefinition_SettingID = 'av';
NPCDefinition_SettingID_Multiplier = 1108149095;
NPCDefinition_SizeX = 'p';
NPCDefinition_SizeX_Multiplier = 544386867;
NPCDefinition_SizeY = 'b';
NPCDefinition_SizeY_Multiplier = -438025791;
NPCDefinition_StandAnimationID = 'e';
NPCDefinition_StandAnimationID_Multiplier = -796142733;
NPCDefinition_TransformIDs = 'ay';
NPCDefinition_TurnAroundAnimationID = 'j';
NPCDefinition_TurnAroundAnimationID_Multiplier = -41211299;
NPCDefinition_TurnLeftAnimationID = 'c';
NPCDefinition_TurnLeftAnimationID_Multiplier = -875804957;
NPCDefinition_TurnRightAnimationID = 'r';
NPCDefinition_TurnRightAnimationID_Multiplier = -1943352097;
NPCDefinition_VarbitID = 'aw';
NPCDefinition_VarbitID_Multiplier = -2122953779;
NPCDefinition_WalkAnimationID = 'z';
NPCDefinition_WalkAnimationID_Multiplier = 174167771;
NPCDefinition_isClickable = 'at';
NPCDefinition_isMinimapVisible = 's';
NPCDefinition_isVisible = 'l';
{* ObjectDefinition - 30 Hooks *}
ObjectDefinition = 'ae';
ObjectDefinition_Actions = 'ar';
ObjectDefinition_AnimationID = 'b';
ObjectDefinition_AnimationID_Multiplier = -1943202023;
ObjectDefinition_ClipType = 's';
ObjectDefinition_ClipType_Multiplier = 1500623131;
ObjectDefinition_Icon = 'ak';
ObjectDefinition_Icon_Multiplier = 946283017;
ObjectDefinition_LightAmbient = 'al';
ObjectDefinition_LightAmbient_Multiplier = 838260991;
ObjectDefinition_LightDiffuse = 'aa';
ObjectDefinition_LightDiffuse_Multiplier = -910435247;
ObjectDefinition_MapID = 'ay';
ObjectDefinition_MapID_Multiplier = -1144950553;
ObjectDefinition_ModelColours = 'z';
ObjectDefinition_ModelIDs = 'e';
ObjectDefinition_ModelSizeX = 'at';
ObjectDefinition_ModelSizeX_Multiplier = 706099793;
ObjectDefinition_ModelSizeY = 'af';
ObjectDefinition_ModelSizeY_Multiplier = 1648916947;
ObjectDefinition_ModelSizeZ = 'ae';
ObjectDefinition_ModelSizeZ_Multiplier = -2076859577;
ObjectDefinition_ModelTextures = 'r';
ObjectDefinition_ModelTypes = 'o';
ObjectDefinition_ModifiedModelColours = 'j';
ObjectDefinition_ModifiedModelTextures = 'c';
ObjectDefinition_Name = 'v';
ObjectDefinition_SettingID = 'an';
ObjectDefinition_SettingID_Multiplier = -1172524273;
ObjectDefinition_SizeX = 'u';
ObjectDefinition_SizeX_Multiplier = -502661923;
ObjectDefinition_SizeY = 'h';
ObjectDefinition_SizeY_Multiplier = -313386547;
ObjectDefinition_TransformIDs = 'ag';
ObjectDefinition_TranslateX = 'ai';
ObjectDefinition_TranslateX_Multiplier = 797825137;
ObjectDefinition_TranslateY = 'as';
ObjectDefinition_TranslateY_Multiplier = -117815977;
ObjectDefinition_TranslateZ = 'aj';
ObjectDefinition_TranslateZ_Multiplier = 1607609861;
ObjectDefinition_VarbitID = 'aq';
ObjectDefinition_VarbitID_Multiplier = 1031494069;
ObjectDefinition_isDelayShading = 'y';
ObjectDefinition_isRotated = 'aw';
ObjectDefinition_isShadowCast = 'av';
ObjectDefinition_isSolid = 'f';
ObjectDefinition_isUnwalkableSolid = 'az';
{* Player - 8 Hooks *}
Player = 'k';
Player_CombatLevel = 'd';
Player_CombatLevel_Multiplier = 711685779;
Player_Definition = 'x';
Player_Model = 'z';
Player_Name = 'n';
Player_PrayerIcon = 'i';
Player_PrayerIcon_Multiplier = 2093284217;
Player_SkullIcon = 'k';
Player_SkullIcon_Multiplier = -2063879489;
Player_TeamIndex = 't';
Player_TeamIndex_Multiplier = -1238435483;
Player_isVisible = 'h';
{* PlayerDefinition - 3 Hooks *}
PlayerDefinition = 'fy';
PlayerDefinition_Appearance = 'n';
PlayerDefinition_NPCID = 'i';
PlayerDefinition_NPCID_Multiplier = 1839007765;
PlayerDefinition_isFemale = 'k';
{* Projectile - 17 Hooks *}
Projectile = 'm';
Projectile_Cycle = 'a';
Projectile_Cycle_Multiplier = 1433255817;
Projectile_Height = 'd';
Projectile_Height_Multiplier = -1919671069;
Projectile_HeightOffset = 'f';
Projectile_RotationX = 'g';
Projectile_RotationX_Multiplier = 327685;
Projectile_RotationY = 's';
Projectile_RotationY_Multiplier = 1794015635;
Projectile_Scalar = 'h';
Projectile_Slope = 'w';
Projectile_Slope_Multiplier = -1399899159;
Projectile_SpeedX = 'c';
Projectile_SpeedY = 'u';
Projectile_SpeedZ = 't';
Projectile_StartX = 'k';
Projectile_StartX_Multiplier = -869661499;
Projectile_StartY = 'i';
Projectile_StartY_Multiplier = -1748635553;
Projectile_TargetDistance = 'e';
Projectile_TargetDistance_Multiplier = 1915994211;
Projectile_TargetID = 'o';
Projectile_TargetID_Multiplier = 1145517117;
Projectile_X = 'z';
Projectile_Y = 'j';
Projectile_isMoving = 'v';
{* Queue - 1 Hooks *}
Queue = 'fk';
Queue_Head = 'n';
{* Region - 2 Hooks *}
Region = 'cr';
Region_WorldObjects = 'w';
Region_SceneTiles = 'q';
{* Renderable - 1 Hooks *}
Renderable = 'bm';
Renderable_ModelHeight = 'cm';
Renderable_ModelHeight_Multiplier = 453842311;
{* RSLoader - 1 Hooks *}
RSLoader = 'eg';
RSLoader_isCrashed = 'oe';
{* SceneTile - 11 Hooks *}
SceneTile = 'co';
SceneTile_BoundaryObject = 'm';
SceneTile_ComplexTile = 'q';
SceneTile_FloorDecorationObject = 'w';
SceneTile_GenericTile = 'd';
SceneTile_WorldObjects = 'v';
SceneTile_ItemLayer = 'e';
SceneTile_Plane = 'i';
SceneTile_Plane_Multiplier = -1708148559;
SceneTile_SceneTile = 'y';
SceneTile_WallDecoration = 'a';
SceneTile_X = 'k';
SceneTile_X_Multiplier = -794538675;
SceneTile_Y = 'x';
SceneTile_Y_Multiplier = -1024706277;
{* Varp - 3 Hooks *}
Varp = 'ao';
Varp_ConfigID = 'k';
Varp_ConfigID_Multiplier = 631780987;
Varp_EndBit = 'd';
Varp_EndBit_Multiplier = -1053846147;
Varp_StartBit = 'i';
Varp_StartBit_Multiplier = 30340359;
{* WallDecoration - 11 Hooks *}
WallDecoration = 'cw';
WallDecoration_BackupRenderable = 'w';
WallDecoration_Flags = 'o';
WallDecoration_Flags_Multiplier = 692731661;
WallDecoration_Height = 'd';
WallDecoration_Height_Multiplier = -229362597;
WallDecoration_ID = 'e';
WallDecoration_ID_Multiplier = -721755575;
WallDecoration_Orientation = 'i';
WallDecoration_Orientation_Multiplier = -1362436049;
WallDecoration_Plane = 'n';
WallDecoration_Plane_Multiplier = -852422437;
WallDecoration_RelativeX = 'q';
WallDecoration_RelativeX_Multiplier = -1191312485;
WallDecoration_RelativeY = 'm';
WallDecoration_RelativeY_Multiplier = -617442441;
WallDecoration_Renderable = 'a';
WallDecoration_X = 'k';
WallDecoration_X_Multiplier = 99295879;
WallDecoration_Y = 'x';
WallDecoration_Y_Multiplier = 1051465281;
{* Widget - 60 Hooks *}
Widget = 'ep';
Widget_GetActions = 'bk';
Widget_Alpha = 'at';
Widget_Alpha_Multiplier = 1016581317;
Widget_BorderThickness = 'au';
Widget_BorderThickness_Multiplier = 2007998633;
Widget_BoundsIndex = 'dy';
Widget_BoundsIndex_Multiplier = 2101402537;
Widget_Children = 'da';
Widget_ConfigListeners = 'cj';
Widget_ConfigTriggers = 'cx';
Widget_ContainerActions = 'bw';
Widget_GetItems = 'dp';
Widget_Height = 's';
Widget_Height_Multiplier = 1132991793;
Widget_GetID = 'x';
Widget_GetID_Multiplier = 736769211;
Widget_GetIndex = 'j';
Widget_GetIndex_Multiplier = 1013933429;
Widget_ItemID = 'dx';
Widget_ItemID_Multiplier = 150866627;
Widget_LoopCycleStatus = 'dz';
Widget_LoopCycleStatus_Multiplier = -1805227743;
Widget_ModelID = 'an';
Widget_ModelID_Multiplier = 2045228943;
Widget_ModelType = 'aq';
Widget_ModelType_Multiplier = -1391965683;
Widget_ModelZoom = 'bb';
Widget_ModelZoom_Multiplier = -1568639167;
Widget_MouseClickedListeners = 'cb';
Widget_MouseDraggedListeners = 'cc';
Widget_MouseEnteredListeners = 'cl';
Widget_MouseExitedListeners = 'cw';
Widget_MouseHoverListeners = 'ch';
Widget_MouseMovedListeners = 'cm';
Widget_MousePressedListeners = 'cn';
Widget_MouseReleasedListeners = 'cq';
Widget_Name = 'bq';
Widget_Opcodes = 'di';
Widget_RenderListeners = 'cy';
Widget_Root = 'by';
Widget_RootID = 'y';
Widget_RootID_Multiplier = -411232353;
Widget_RotationX = 'ah';
Widget_RotationX_Multiplier = -2049046273;
Widget_RotationY = 'bx';
Widget_RotationY_Multiplier = 468330155;
Widget_RotationZ = 'bf';
Widget_RotationZ_Multiplier = -1155259211;
Widget_ScrollHeight = 'aa';
Widget_ScrollHeight_Multiplier = 434082875;
Widget_ScrollListeners = 'cz';
Widget_ScrollWidth = 'al';
Widget_ScrollWidth_Multiplier = 1990985579;
Widget_ScrollX = 'b';
Widget_ScrollX_Multiplier = -1476750751;
Widget_ScrollY = 'l';
Widget_ScrollY_Multiplier = 1228076087;
Widget_SelectedActionName = 'bm';
Widget_ShadowColour = 'az';
Widget_ShadowColour_Multiplier = -1473699591;
Widget_SkillListeners = 'ci';
Widget_SkillTriggers = 'cv';
Widget_SpellName = 'dl';
Widget_SpriteID = 'as';
Widget_SpriteID_Multiplier = 846646731;
Widget_StackSize = 'dr';
Widget_StackSize_Multiplier = 61173461;
Widget_GetStackSizes = 'dh';
Widget_TableListeners = 'co';
Widget_TableTriggers = 'ce';
Widget_GetText = 'bh';
Widget_TextColour = 'ar';
Widget_TextColour_Multiplier = -1227121893;
Widget_TextDrawingAreaIndex = 'bd';
Widget_TextDrawingAreaIndex_Multiplier = -995591111;
Widget_TextureID = 'ae';
Widget_TextureID_Multiplier = -1947193201;
Widget_Tooltip = 'do';
Widget_Width = 'g';
Widget_Width_Multiplier = -626335765;
Widget_GetRelativeX = 'h';
Widget_GetRelativeX_Multiplier = 697222877;
Widget_GetRelativeY = 'x';
Widget_GetRelativeY_Multiplier = -2116268553;
Widget_isFlippedHorizontally = 'ag';
Widget_isFlippedVertically = 'ao';
Widget_isHidden = 'p';
Widget_isTypeFaceShadowed = 'aj';
{* WidgetItemNode - 2 Hooks *}
WidgetItemNode = 'j';
WidgetItemNode_IDs = 'x';
WidgetItemNode_StackSizes = 'k';
{* WidgetNode - 1 Hooks *}
WidgetNode = 'i';
WidgetNode_ID = 'n';
WidgetNode_ID_Multiplier = 1103504125;
{* World - 7 Hooks *}
World = 's';
World_Activity = 'd';
World_Domain = 'i';
World_Index = 'm';
World_Index_Multiplier = -781463647;
World_Location = 'q';
World_Location_Multiplier = 122560199;
World_Mask = 'x';
World_Mask_Multiplier = -485706191;
World_Population = 'k';
World_Population_Multiplier = -1825444877;
World_WorldID = 'n';
World_WorldID_Multiplier = -1049303969;
2014-11-16 08:36:22
From: Cheddy
…
2014-11-16 08:58:32
From: elfyyy
Thanks! :p
So guys, just a quick update on the rewrite of the include here. I just finished the last "core" part of it, ground items yesterday. So now all that needs to be done is to get the auto updating working with github, go through and fix my lazy standards :p and also get it to compile in lape, so reflection can be used with @Aerolib!
I really could use people testing this version as it's been hard for me to test it as much as I should, so @Fitta @Harrier @Rlp @ineedabot (Please tag anyone I might have missed you scripts w/ reflection) could you download this and use it instead with your scripts?
I won't transition over to this include until all of the scripts currently using reflection will 100% compile and run with this as I don't want to break any scripts! If you could talk to me about bugs/suggestions through pm or skype 'elfyyy-' as I don't want to talk about it much on this thread as it doesn't relate to the current include on googlecode!
Thanks a lot guys and hopefully it will be completely finished soon!
2014-11-16 09:05:54
2014-11-16 09:10:32
From: Fitta
I had a working lape reflection include. Only big problem was that you had to change the SMART target as Aerolib handles that a bit different. Other than that, if you're just looking to convert it, I'm remembering that it was pretty straight forward :)
I'll test all this in two days time.
From: Cheddy
Would it help you guys if I dumped the definitions to json so that you can load them in Simba?
2014-11-16 09:39:58
{"ID":1359,"stackable":false,"members":false,"edible":false,"noted":false,"cosmetic":false,"noteID":-1,"value":12800,"actions":[null,"Wield",null,null,"Drop"],"groundActions":[null,null,"Take",null,null],"noteTemplateID":-1,"cosmeticID":-1,"cosmeticTemplateID":-1,"teamIndex":0,"name":"Rune axe","modelID":2544,"modelZoom":1060,"modelRotation1":520,"modelRotation2":1196,"modelOffset1":65536,"modelOffset2":0,"maleEquipPrimaryModel":510,"maleEquipOffset":0,"maleEquipSecondaryModel":0,"femaleEquipPrimaryModel":510,"femaleEquipOffset":6,"femaleEquipSecondaryModel":0,"modelColourCount":1,"originalColours":[-29403],"modifiedColours":[61],"maleEmblem":0,"diagonalRotation":0,"femaleDialogueHat":0,"maleDialogueHat":0,"femaleEmblem":0,"maleDialogue":0,"femaleDialogue":0,"modelSizeX":0,"modelSizeY":0,"modelSizeZ":0,"lightModifier":0,"shadowModifier":0}
2014-11-16 10:00:26
From: Cheddy
…
2014-11-16 10:12:48
From: elfyyy
…
2014-11-16 10:52:14
From: Cheddy
They are pretty big files haha, just hoping that the ids don't change with revisions for the objects and npcs. The varps and item ids are static but i know that object and npc defs change throughout revisions so i'm hoping that there are duplicate fields for them in the cache rather than having to update the cache every revision ;)
2014-11-19 21:21:18
2014-11-19 22:49:03
From: elfyyy
Thanks! :p
So guys, just a quick update on the rewrite of the include here. I just finished the last "core" part of it, ground items yesterday. So now all that needs to be done is to get the auto updating working with github, go through and fix my lazy standards :p and also get it to compile in lape, so reflection can be used with @Aerolib!
I really could use people testing this version as it's been hard for me to test it as much as I should, so @Fitta @Harrier @Rlp @ineedabot (Please tag anyone I might have missed you scripts w/ reflection) could you download this and use it instead with your scripts?
I won't transition over to this include until all of the scripts currently using reflection will 100% compile and run with this as I don't want to break any scripts! If you could talk to me about bugs/suggestions through pm or skype 'elfyyy-' as I don't want to talk about it much on this thread as it doesn't relate to the current include on googlecode!
Thanks a lot guys and hopefully it will be completely finished soon!
2014-11-19 22:54:36
From: ineedbot
Sorry I was busy with other things, lovely news! I'll deff look into this and rewrite my scripts! Btw your tag of my name is wrong :P
2014-11-27 14:34:51
{ 443 Hooks Found By Cheddy's PiUpdater }
const
ReflectionRevision = '66';
{* AccessFile - 3 Hooks *}
AccessFile = 'gg';
AccessFile_File = 'g';
AccessFile_Length = 'i';
AccessFile_Length_Multiplier = -4683923131454255485;
AccessFile_Position = 'k';
AccessFile_Position_Multiplier = 1;
{* AnimableNode - 7 Hooks *}
AnimableNode = 'b';
AnimableNode_Animation = 'u';
AnimableNode_ID = 'g';
AnimableNode_ID_Multiplier = -1276298399;
AnimableNode_Orientation = 'k';
AnimableNode_Orientation_Multiplier = 934696521;
AnimableNode_Plane = 'e';
AnimableNode_Plane_Multiplier = -294271899;
AnimableNode_Type = 'i';
AnimableNode_Type_Multiplier = 599610931;
AnimableNode_X = 'w';
AnimableNode_X_Multiplier = 673721797;
AnimableNode_Y = 'm';
AnimableNode_Y_Multiplier = 1095198517;
{* AnimationSequence - 10 Hooks *}
AnimationSequence = 'ax';
AnimationSequence_FlowControl = 'b';
AnimationSequence_Frame1IDs = 'm';
AnimationSequence_Frame2IDs = 'j';
AnimationSequence_FrameStep = 'h';
AnimationSequence_FrameStep_Multiplier = 1101127937;
AnimationSequence_MaxLoops = 't';
AnimationSequence_MaxLoops_Multiplier = -186408785;
AnimationSequence_MinLoops = 'q';
AnimationSequence_MinLoops_Multiplier = -1103415799;
AnimationSequence_PrecedenceAnimation = 'y';
AnimationSequence_PrecedenceAnimation_Multiplier = 606793231;
AnimationSequence_Priority = 'd';
AnimationSequence_Priority_Multiplier = 422386895;
AnimationSequence_ReplyMode = 'z';
AnimationSequence_ReplyMode_Multiplier = 437062993;
AnimationSequence_isStretched = 'r';
{* BoundaryObject - 9 Hooks *}
BoundaryObject = 'cm';
BoundaryObject_AlternativeOrientation = 'w';
BoundaryObject_AlternativeOrientation_Multiplier = 1769639587;
BoundaryObject_BackupRenderable = 'u';
BoundaryObject_Flags = 'o';
BoundaryObject_Flags_Multiplier = -218587851;
BoundaryObject_Hash = 'j';
BoundaryObject_Hash_Multiplier = -1400501077;
BoundaryObject_Orientation = 'e';
BoundaryObject_Orientation_Multiplier = -1566199663;
BoundaryObject_Plane = 'g';
BoundaryObject_Plane_Multiplier = 674823675;
BoundaryObject_Renderable = 'm';
BoundaryObject_Get_X = 'i';
BoundaryObject_Get_X_Multiplier = -1983413335;
BoundaryObject_Get_Y = 'k';
BoundaryObject_Get_Y_Multiplier = 2085483891;
{* Buffer - 2 Hooks *}
Buffer = 'dk';
Buffer_Offset = 'i';
Buffer_Offset_Multiplier = 130418737;
Buffer_Payload = 'g';
{* BufferedConnection - 5 Hooks *}
BufferedConnection = 'dw';
BufferedConnection_InputStream = 'g';
BufferedConnection_OutputStream = 'i';
BufferedConnection_Payload = 'u';
BufferedConnection_Socket = 'k';
BufferedConnection_isClosed = 'e';
{* Cache - 5 Hooks *}
Cache = 'fc';
Cache_CacheableNode = 'g';
Cache_NodeHashTable = 'e';
Cache_Queue = 'w';
Cache_Remaining = 'k';
Cache_Remaining_Multiplier = 1;
Cache_Size = 'i';
Cache_Size_Multiplier = 1;
{* CacheableNode - 2 Hooks *}
CacheableNode = 'gy';
CacheableNode_Next = 'co';
CacheableNode_Prev = 'cn';
{* Canvas - 1 Hooks *}
Canvas = 'dg';
Canvas_Component = 'g';
{* Actor - 17 Hooks *}
Actor = 'aa';
Actor_Animation = 'by';
Actor_Animation_Multiplier = 685373615;
Actor_CombatCycle = 'aq';
Actor_CombatCycle_Multiplier = 1523759155;
Actor_Health = 'ak';
Actor_Health_Multiplier = -74870063;
Actor_HitCycles = 'ao';
Actor_HitDamages = 'aw';
Actor_HitTypes = 'ag';
Actor_Interacting = 'at';
Actor_Interacting_Multiplier = -171915889;
Actor_MaxHealth = 'al';
Actor_MaxHealth_Multiplier = 244222915;
Actor_Orientation = 'bt';
Actor_Orientation_Multiplier = -939519057;
Actor_PathLength = 'bj';
Actor_PathLength_Multiplier = -1364815893;
Actor_PathTraversed = 'bl';
Actor_PathX = 'bp';
Actor_PathY = 'bs';
Actor_ActiveText = 'am';
Actor_LocalX = 'v';
Actor_LocalX_Multiplier = -207467453;
Actor_LocalY = 'f';
Actor_LocalY_Multiplier = 708620417;
Actor_isInSequence = 'p';
{* ChatboxMessage - 6 Hooks *}
ChatboxMessage = 'aj';
ChatboxMessage_ClanName = 'w';
ChatboxMessage_ID = 'g';
ChatboxMessage_ID_Multiplier = -1466048779;
ChatboxMessage_PlayerName = 'e';
ChatboxMessage_Text = 'm';
ChatboxMessage_TimeSent = 'i';
ChatboxMessage_TimeSent_Multiplier = 467683163;
ChatboxMessage_Type = 'k';
ChatboxMessage_Type_Multiplier = -119015993;
{* ClassData - 3 Hooks *}
ClassData = 'gb';
ClassData_Data = 'm';
ClassData_Fields = 'w';
ClassData_Methods = 'j';
{* Client - 84 Hooks *}
Client = 'client';
Client_AnimationSequenceCache = 'ax.e';
Client_BaseX = 'db.ci';
Client_BaseX_Multiplier = -1445717775;
Client_BaseY = 'k.cq';
Client_BaseY_Multiplier = 1085486563;
Client_CameraPitch = 'b.fi';
Client_CameraPitch_Multiplier = -550475961;
Client_CameraPitchMinimum = 'client.fn';
Client_CameraPitchMinimum_Multiplier = 1511983717;
Client_CameraX = 'aj.fp';
Client_CameraX_Multiplier = 1599138771;
Client_CameraY = 'ai.fh';
Client_CameraY_Multiplier = 982715361;
Client_CameraYaw = 'dn.fg';
Client_CameraYaw_Multiplier = 490187469;
Client_CameraZ = 'g.fw';
Client_CameraZ_Multiplier = 1575193183;
Client_Canvas = 'bm.pn';
Client_CollisionMaps = 'client.w';
Client_CosineCurve = 'cl.aj';
Client_CurrentWorldID = 'client.e';
Client_CurrentWorldID_Multiplier = 1904708431;
Client_DestinationX = 'client.ml';
Client_DestinationX_Multiplier = -1920923311;
Client_DestinationY = 'client.mz';
Client_DestinationY_Multiplier = 1194667191;
Client_Run_Energy = 'client.jg';
Client_Run_Energy_Multiplier = 1684845075;
Client_Experiences = 'client.ht';
Client_FirstMenuOption = 'ey.ix';
Client_LoopCycle = 'client.z';
Client_LoopCycle_Multiplier = -662393551;
Client_Login_State = 'client.t';
Client_Login_State_Multiplier = -1404183043;
Client_GroundItemList = 'client.hb';
Client_IdleTime = 'dp.i';
Client_IdleTime_Multiplier = 1;
Client_ItemDefinintionCache = 'ak.e';
Client_ItemModelCache = 'ak.w';
Client_LastClickTime = 'dp.r';
Client_LastClickTime_Multiplier = -1106688106871487599;
Client_LastClickX = 'dp.h';
Client_LastClickX_Multiplier = -874865137;
Client_LastClickY = 'dp.b';
Client_LastClickY_Multiplier = 161413941;
Client_LastMouseClickButton = 'dp.e';
Client_LastMouseClickButton_Multiplier = 1971020511;
Client_LastMouseClickModifier = 'dp.o';
Client_LastMouseClickModifier_Multiplier = -599658831;
Client_Levels = 'client.hu';
Client_NPCs = 'client.bp';
Client_Player = 'ci.hd';
Client_PlayerIndex = 'client.hz';
Client_PlayerIndex_Multiplier = 511487309;
Client_Players = 'client.ga';
Client_LoginState = 'ac.aa';
Client_LoginState_Multiplier = -796844675;
Client_CompassAngle = 'client.fq';
Client_CompassAngle_Multiplier = 114425955;
Client_Map_Offset = 'client.dw';
Client_Map_Offset_Multiplier = -1677290205;
Client_Map_Scale = 'client.di';
Client_Map_Scale_Multiplier = -798942539;
Client_MenuActions = 'client.iq';
Client_MenuCount = 'client.ii';
Client_MenuCount_Multiplier = 1368001173;
Client_MenuHeight = 'a.iy';
Client_MenuHeight_Multiplier = 882969573;
Client_MenuOptions = 'client.in';
Client_MenuWidth = 'fd.ir';
Client_MenuWidth_Multiplier = 556997877;
Client_MenuX = 'n.hm';
Client_MenuX_Multiplier = 2076527119;
Client_MenuY = 'bv.hf';
Client_MenuY_Multiplier = 1631503311;
Client_Mouse = 'dp.g';
Client_MouseX = 'dp.w';
Client_MouseX_Multiplier = -1859339009;
Client_MouseY = 'dp.m';
Client_MouseY_Multiplier = 1187421839;
Client_NPCDefinitionCache = 'ae.k';
Client_NPCIndices = 'client.bl';
Client_NPCModelCache = 'ae.e';
Client_ObjectAnimatedModelCache = 'ai.u';
Client_ObjectDefinitionCache = 'ai.e';
Client_ObjectModelCache = 'ai.w';
Client_ObjectRenderableCache = 'ai.m';
Client_Password = 'ac.ax';
Client_Plane = 'g.hs';
Client_Plane_Multiplier = 201215043;
Client_PlayerModelCache = 'fp.r';
Client_ProjectileList = 'client.he';
Client_Real_Levels = 'client.hw';
Client_Region = 'et.dh';
Client_RGBImageCache = 'ak.m';
Client_SelectedItemName = 'client.it';
Client_SelectedSpellName = 'client.js';
Client_Settings = 'ea.i';
Client_SineCurve = 'cl.as';
Client_GroundHeights = 'm.g';
Client_GroundSettings = 'm.i';
Client_Username = 'ac.ay';
Client_ValidWidgets = 'eq.i';
Client_VarpbitCache = 'ag.i';
Client_VarpbitSettings = 'ea.g';
Client_Weight = 'client.ju';
Client_Weight_Multiplier = 2001849603;
Client_WidgetBoundsHeight = 'client.lk';
Client_WidgetBoundsWidth = 'client.lg';
Client_WidgetBoundsX = 'client.ll';
Client_WidgetBoundsY = 'client.li';
Client_WidgetItemTable = 'x.g';
Client_WidgetNodeTable = 'client.jf';
Client_Widgets = 'eq.g';
Client_WidgetSettings = 'ea.k';
Client_Worlds = 'ac.bu';
Client_isMenuOpen = 'client.hx';
Client_isWorldSelectorOpen = 'ac.at';
{* CollisionMap - 5 Hooks *}
CollisionMap = 'go';
CollisionMap_Flags = 'ap';
CollisionMap_Height = 'ah';
CollisionMap_Height_Multiplier = 1197330679;
CollisionMap_OffsetX = 'c';
CollisionMap_OffsetX_Multiplier = -1631858009;
CollisionMap_OffsetY = 'ar';
CollisionMap_OffsetY_Multiplier = 1974764361;
CollisionMap_Width = 'ac';
CollisionMap_Width_Multiplier = 230167527;
{* ComplexTile - 1 Hooks *}
ComplexTile = 'cy';
ComplexTile_isFlat = 'b';
{* FloorDecorationObject - 6 Hooks *}
FloorDecorationObject = 'cd';
FloorDecorationObject_Flags = 'm';
FloorDecorationObject_Flags_Multiplier = 102908977;
FloorDecorationObject_Hash = 'w';
FloorDecorationObject_Hash_Multiplier = 248450949;
FloorDecorationObject_Plane = 'g';
FloorDecorationObject_Plane_Multiplier = -1619042723;
FloorDecorationObject_Renderable = 'e';
FloorDecorationObject_Get_X = 'i';
FloorDecorationObject_Get_X_Multiplier = -1066839661;
FloorDecorationObject_Get_Y = 'k';
FloorDecorationObject_Get_Y_Multiplier = -74709691;
{* GenericTile - 1 Hooks *}
GenericTile = 'co';
GenericTile_isFlat = 'm';
{* NodeHashTable - 5 Hooks *}
NodeHashTable = 'fz';
NodeHashTable_Current = 'e';
NodeHashTable_CurrentIndex = 'w';
NodeHashTable_CurrentIndex_Multiplier = 1;
NodeHashTable_Head = 'k';
NodeHashTable_GetNodes = 'i';
NodeHashTable_GetSize = 'g';
NodeHashTable_GetSize_Multiplier = 1;
{* WorldObject - 12 Hooks *}
WorldObject = 'cp';
WorldObject_Flags = 'x';
WorldObject_Flags_Multiplier = 468673977;
WorldObject_Height = 'i';
WorldObject_Height_Multiplier = -307569987;
WorldObject_Hash = 'l';
WorldObject_Hash_Multiplier = 2109181971;
WorldObject_Orientation = 'm';
WorldObject_Orientation_Multiplier = 784356871;
WorldObject_Plane = 'g';
WorldObject_Plane_Multiplier = -1278265567;
WorldObject_RelativeX = 'u';
WorldObject_RelativeX_Multiplier = -567993115;
WorldObject_RelativeY = 'o';
WorldObject_RelativeY_Multiplier = -395767395;
WorldObject_Renderable = 'w';
WorldObject_SizeX = 'j';
WorldObject_SizeX_Multiplier = -1033035509;
WorldObject_SizeY = 'h';
WorldObject_SizeY_Multiplier = -481243539;
WorldObject_Get_X = 'k';
WorldObject_Get_X_Multiplier = 1535028481;
WorldObject_Get_Y = 'e';
WorldObject_Get_Y_Multiplier = 1348296831;
{* Item - 2 Hooks *}
Item = 's';
Item_ID = 'g';
Item_ID_Multiplier = -1414849737;
Item_StackSize = 'i';
Item_StackSize_Multiplier = 1179680475;
{* ItemDefinition - 38 Hooks *}
ItemDefinition = 'ak';
ItemDefinition_DiagonalRotation = 'd';
ItemDefinition_DiagonalRotation_Multiplier = 299345117;
ItemDefinition_FemaleDialogue = 'ai';
ItemDefinition_FemaleDialogue_Multiplier = -1270645895;
ItemDefinition_FemaleDialogueHat = 'ay';
ItemDefinition_FemaleDialogueHat_Multiplier = -2025902259;
ItemDefinition_FemaleEmblem = 'aa';
ItemDefinition_FemaleEmblem_Multiplier = 1711812027;
ItemDefinition_FemaleEquipOffset = 'aj';
ItemDefinition_FemaleEquipOffset_Multiplier = 1476795629;
ItemDefinition_FemaleEquipPrimaryModel = 'ah';
ItemDefinition_FemaleEquipPrimaryModel_Multiplier = 990652695;
ItemDefinition_FemaleEquipSecondaryModel = 'ap';
ItemDefinition_FemaleEquipSecondaryModel_Multiplier = 1619765655;
ItemDefinition_GroundActions = 'p';
ItemDefinition_LightModifier = 'ak';
ItemDefinition_LightModifier_Multiplier = 961120259;
ItemDefinition_MaleDialogue = 'am';
ItemDefinition_MaleDialogue_Multiplier = 317558339;
ItemDefinition_MaleDialogueHat = 'ae';
ItemDefinition_MaleDialogueHat_Multiplier = 1463884903;
ItemDefinition_MaleEmblem = 'as';
ItemDefinition_MaleEmblem_Multiplier = 2017831127;
ItemDefinition_MaleEquipOffset = 'ac';
ItemDefinition_MaleEquipOffset_Multiplier = 376632603;
ItemDefinition_MaleEquipPrimaryModel = 'c';
ItemDefinition_MaleEquipPrimaryModel_Multiplier = -1491341981;
ItemDefinition_MaleEquipSecondaryModel = 'ar';
ItemDefinition_MaleEquipSecondaryModel_Multiplier = -167555537;
ItemDefinition_ModelColours = 'b';
ItemDefinition_ModelID = 'o';
ItemDefinition_ModelID_Multiplier = -2023136935;
ItemDefinition_ModelOffset = 'z';
ItemDefinition_ModelOffset_Multiplier = 223922925;
ItemDefinition_ModelSizeX = 'ag';
ItemDefinition_ModelSizeX_Multiplier = -1978395381;
ItemDefinition_ModelSizeY = 'ao';
ItemDefinition_ModelSizeY_Multiplier = -787743377;
ItemDefinition_ModelSizeZ = 'aq';
ItemDefinition_ModelSizeZ_Multiplier = 620653097;
ItemDefinition_ModelTextures = 'l';
ItemDefinition_ModelZoom = 'q';
ItemDefinition_ModelZoom_Multiplier = -675484572;
ItemDefinition_ModifiedModelColours = 'r';
ItemDefinition_ModifiedModelTextures = 'x';
ItemDefinition_Name = 'h';
ItemDefinition_NoteIndex = 'az';
ItemDefinition_NoteIndex_Multiplier = 2136300955;
ItemDefinition_NoteTemplateIndex = 'aw';
ItemDefinition_NoteTemplateIndex_Multiplier = 1469220379;
ItemDefinition_Rotation1 = 't';
ItemDefinition_Rotation1_Multiplier = -2067888133;
ItemDefinition_Rotation2 = 'y';
ItemDefinition_Rotation2_Multiplier = 1607108579;
ItemDefinition_ShadowModifier = 'al';
ItemDefinition_ShadowModifier_Multiplier = 1271497005;
ItemDefinition_Sine = 'n';
ItemDefinition_Sine_Multiplier = -1520664733;
ItemDefinition_StackableAmmounts = 'au';
ItemDefinition_StackableIDs = 'ax';
ItemDefinition_TeamIndex = 'at';
ItemDefinition_TeamIndex_Multiplier = -984574205;
ItemDefinition_Value = 'f';
ItemDefinition_Value_Multiplier = -184832025;
ItemDefinition_InventoryActions = 's';
ItemDefinition_isMembers = 'a';
{* ItemLayer - 8 Hooks *}
ItemLayer = 'ck';
ItemLayer_BottomRenderable = 'e';
ItemLayer_Height = 'j';
ItemLayer_Height_Multiplier = -1439212179;
ItemLayer_ID = 'u';
ItemLayer_ID_Multiplier = -129237989;
ItemLayer_MiddleRenderable = 'w';
ItemLayer_Plane = 'g';
ItemLayer_Plane_Multiplier = 1995501707;
ItemLayer_TopRenderable = 'm';
ItemLayer_X = 'i';
ItemLayer_X_Multiplier = -1710941019;
ItemLayer_Y = 'k';
ItemLayer_Y_Multiplier = 1923688291;
{* LinkedList - 2 Hooks *}
LinkedList = 'fx';
LinkedList_Head = 'g';
LinkedList_Tail = 'i';
{* Model - 15 Hooks *}
Model = 'ce';
Model_IndicesLength = 'o';
Model_IndicesLength_Multiplier = 1;
Model_IndicesX = 'h';
Model_IndicesY = 'b';
Model_IndicesZ = 'r';
Model_TexturedIndicesX = 'l';
Model_TexturedIndicesY = 'x';
Model_TexturedIndicesZ = 'q';
Model_TexturedVerticesLength = 'v';
Model_TexturedVerticesLength_Multiplier = 1;
Model_TexturedVerticesX = 'f';
Model_TexturedVerticesY = 'a';
Model_TexturedVerticesZ = 'p';
Model_VerticesLength = 'w';
Model_VerticesLength_Multiplier = 1;
Model_VerticesX = 'm';
Model_VerticesY = 'u';
Model_VerticesZ = 'j';
{* ModelHeader - 0 Hooks *}
ModelHeader = 'cr';
{* MouseCapturer - 5 Hooks *}
MouseCapturer = 'r';
MouseCapturer_Length = 'k';
MouseCapturer_Length_Multiplier = 456250053;
MouseCapturer_Lock = 'i';
MouseCapturer_TrackingX = 'e';
MouseCapturer_TrackingY = 'w';
MouseCapturer_isCapturing = 'g';
{* MouseListener - 0 Hooks *}
MouseListener = 'dp';
{* Node - 3 Hooks *}
Node = 'gf';
Node_Next = 'el';
Node_Previous = 'ee';
Node_ID = 'dw';
Node_ID_Multiplier = 1;
{* NPC - 1 Hooks *}
NPC = 'ap';
NPC_Definition = 'g';
{* NPCDefinition - 27 Hooks *}
NPCDefinition = 'ae';
NPCDefinition_Actions = 'v';
NPCDefinition_BoundaryObjectDimension = 'u';
NPCDefinition_BoundaryObjectDimension_Multiplier = -2080167725;
NPCDefinition_Brightness = 'ar';
NPCDefinition_Brightness_Multiplier = 1945044265;
NPCDefinition_Level = 'a';
NPCDefinition_Level_Multiplier = -728418809;
NPCDefinition_Contrast = 'ac';
NPCDefinition_Contrast_Multiplier = 2132438769;
NPCDefinition_DegreesToTurn = 'ap';
NPCDefinition_DegreesToTurn_Multiplier = -1346604173;
NPCDefinition_HeadIcon = 'ah';
NPCDefinition_HeadIcon_Multiplier = -1549694773;
NPCDefinition_ID = 'w';
NPCDefinition_ID_Multiplier = 1133952169;
NPCDefinition_ModelColours = 'y';
NPCDefinition_ModelIDs = 'j';
NPCDefinition_ModelTextures = 'z';
NPCDefinition_ModifiedModelColours = 'd';
NPCDefinition_ModifiedModelTextures = 'n';
NPCDefinition_Name = 'm';
NPCDefinition_SettingID = 'aa';
NPCDefinition_SettingID_Multiplier = 1554737403;
NPCDefinition_SizeX = 'p';
NPCDefinition_SizeX_Multiplier = 599795739;
NPCDefinition_SizeY = 's';
NPCDefinition_SizeY_Multiplier = 1339463961;
NPCDefinition_StandAnimationID = 'h';
NPCDefinition_StandAnimationID_Multiplier = 262858397;
NPCDefinition_TransformIDs = 'aj';
NPCDefinition_TurnAroundAnimationID = 'x';
NPCDefinition_TurnAroundAnimationID_Multiplier = -514627795;
NPCDefinition_TurnLeftAnimationID = 't';
NPCDefinition_TurnLeftAnimationID_Multiplier = -773687227;
NPCDefinition_TurnRightAnimationID = 'q';
NPCDefinition_TurnRightAnimationID_Multiplier = 987119265;
NPCDefinition_VarbitID = 'as';
NPCDefinition_VarbitID_Multiplier = -770404585;
NPCDefinition_WalkAnimationID = 'l';
NPCDefinition_WalkAnimationID_Multiplier = -579147323;
NPCDefinition_isClickable = 'am';
NPCDefinition_isMinimapVisible = 'f';
NPCDefinition_isVisible = 'c';
{* ObjectDefinition - 30 Hooks *}
ObjectDefinition = 'ai';
ObjectDefinition_Actions = 'ah';
ObjectDefinition_AnimationID = 's';
ObjectDefinition_AnimationID_Multiplier = -1137151715;
ObjectDefinition_ClipType = 'f';
ObjectDefinition_ClipType_Multiplier = -2132976787;
ObjectDefinition_Icon = 'ap';
ObjectDefinition_Icon_Multiplier = -1570843161;
ObjectDefinition_LightAmbient = 'ar';
ObjectDefinition_LightAmbient_Multiplier = 1954677831;
ObjectDefinition_LightDiffuse = 'ac';
ObjectDefinition_LightDiffuse_Multiplier = -1485297181;
ObjectDefinition_MapID = 'aj';
ObjectDefinition_MapID_Multiplier = 1203813793;
ObjectDefinition_ModelColours = 'l';
ObjectDefinition_ModelIDs = 'h';
ObjectDefinition_ModelSizeX = 'am';
ObjectDefinition_ModelSizeX_Multiplier = -222614049;
ObjectDefinition_ModelSizeY = 'ae';
ObjectDefinition_ModelSizeY_Multiplier = 1172310083;
ObjectDefinition_ModelSizeZ = 'ai';
ObjectDefinition_ModelSizeZ_Multiplier = 1974169743;
ObjectDefinition_ModelTextures = 'q';
ObjectDefinition_ModelTypes = 'b';
ObjectDefinition_ModifiedModelColours = 'x';
ObjectDefinition_ModifiedModelTextures = 't';
ObjectDefinition_Name = 'r';
ObjectDefinition_SettingID = 'ak';
ObjectDefinition_SettingID_Multiplier = -124292647;
ObjectDefinition_SizeX = 'y';
ObjectDefinition_SizeX_Multiplier = 113894195;
ObjectDefinition_SizeY = 'd';
ObjectDefinition_SizeY_Multiplier = 1782364735;
ObjectDefinition_TransformIDs = 'ao';
ObjectDefinition_TranslateX = 'ay';
ObjectDefinition_TranslateX_Multiplier = -247410523;
ObjectDefinition_TranslateY = 'ax';
ObjectDefinition_TranslateY_Multiplier = -1831882675;
ObjectDefinition_TranslateZ = 'au';
ObjectDefinition_TranslateZ_Multiplier = -752036909;
ObjectDefinition_VarbitID = 'aq';
ObjectDefinition_VarbitID_Multiplier = 619742113;
ObjectDefinition_isDelayShading = 'a';
ObjectDefinition_isRotated = 'as';
ObjectDefinition_isShadowCast = 'aa';
ObjectDefinition_isSolid = 'n';
ObjectDefinition_isUnwalkableSolid = 'aw';
{* Player - 8 Hooks *}
Player = 'k';
Player_CombatLevel = 'w';
Player_CombatLevel_Multiplier = -37414825;
Player_Definition = 'i';
Player_Model = 'l';
Player_Name = 'g';
Player_PrayerIcon = 'm';
Player_PrayerIcon_Multiplier = 724097665;
Player_SkullIcon = 'w';
Player_SkullIcon_Multiplier = -37414825;
Player_TeamIndex = 'z';
Player_TeamIndex_Multiplier = -2110125141;
Player_isVisible = 'd';
{* PlayerDefinition - 3 Hooks *}
PlayerDefinition = 'fp';
PlayerDefinition_Appearance = 'g';
PlayerDefinition_NPCID = 'e';
PlayerDefinition_NPCID_Multiplier = 772410741;
PlayerDefinition_isFemale = 'k';
{* Projectile - 17 Hooks *}
Projectile = 'u';
Projectile_Cycle = 'j';
Projectile_Cycle_Multiplier = -725188225;
Projectile_Height = 'w';
Projectile_Height_Multiplier = -468497413;
Projectile_HeightOffset = 'n';
Projectile_RotationX = 'v';
Projectile_RotationX_Multiplier = 1316401903;
Projectile_RotationY = 'f';
Projectile_RotationY_Multiplier = -1945889647;
Projectile_Scalar = 'd';
Projectile_Slope = 'o';
Projectile_Slope_Multiplier = -1163271465;
Projectile_SpeedX = 't';
Projectile_SpeedY = 'y';
Projectile_SpeedZ = 'z';
Projectile_StartX = 'k';
Projectile_StartX_Multiplier = 1141500167;
Projectile_StartY = 'e';
Projectile_StartY_Multiplier = -2043315377;
Projectile_TargetDistance = 'h';
Projectile_TargetDistance_Multiplier = 1037369539;
Projectile_TargetID = 'b';
Projectile_TargetID_Multiplier = -1077526313;
Projectile_X = 'l';
Projectile_Y = 'x';
Projectile_isMoving = 'r';
{* Queue - 1 Hooks *}
Queue = 'ft';
Queue_Head = 'g';
{* Region - 2 Hooks *}
Region = 'cc';
Region_WorldObjects = 'o';
Region_SceneTiles = 'm';
{* Renderable - 1 Hooks *}
Renderable = 'bl';
Renderable_ModelHeight = 'ct';
Renderable_ModelHeight_Multiplier = 223660393;
{* RSLoader - 1 Hooks *}
RSLoader = 'ee';
RSLoader_isCrashed = 'on';
{* SceneTile - 11 Hooks *}
SceneTile = 'cw';
SceneTile_BoundaryObject = 'u';
SceneTile_ComplexTile = 'm';
SceneTile_FloorDecorationObject = 'o';
SceneTile_GenericTile = 'w';
SceneTile_WorldObjects = 'r';
SceneTile_ItemLayer = 'h';
SceneTile_Plane = 'e';
SceneTile_Plane_Multiplier = -1687894635;
SceneTile_SceneTile = 'a';
SceneTile_WallDecoration = 'j';
SceneTile_X = 'i';
SceneTile_X_Multiplier = 1789296991;
SceneTile_Y = 'k';
SceneTile_Y_Multiplier = 1056224811;
{* Varp - 3 Hooks *}
Varp = 'ag';
Varp_ConfigID = 'k';
Varp_ConfigID_Multiplier = -2036465223;
Varp_EndBit = 'w';
Varp_EndBit_Multiplier = -1321808583;
Varp_StartBit = 'e';
Varp_StartBit_Multiplier = 1915238253;
{* WallDecoration - 11 Hooks *}
WallDecoration = 'cx';
WallDecoration_BackupRenderable = 'o';
WallDecoration_Flags = 'b';
WallDecoration_Flags_Multiplier = 1474324425;
WallDecoration_Height = 'w';
WallDecoration_Height_Multiplier = 884163329;
WallDecoration_ID = 'h';
WallDecoration_ID_Multiplier = 108241691;
WallDecoration_Orientation = 'e';
WallDecoration_Orientation_Multiplier = -899856127;
WallDecoration_Plane = 'g';
WallDecoration_Plane_Multiplier = -152026405;
WallDecoration_RelativeX = 'm';
WallDecoration_RelativeX_Multiplier = -1587800521;
WallDecoration_RelativeY = 'u';
WallDecoration_RelativeY_Multiplier = 713109441;
WallDecoration_Renderable = 'j';
WallDecoration_X = 'i';
WallDecoration_X_Multiplier = -1890180425;
WallDecoration_Y = 'k';
WallDecoration_Y_Multiplier = 204816391;
{* Widget - 60 Hooks *}
Widget = 'eq';
Widget_GetActions = 'bg';
Widget_Alpha = 'am';
Widget_Alpha_Multiplier = 327680;
Widget_BorderThickness = 'az';
Widget_BorderThickness_Multiplier = -927795629;
Widget_BoundsIndex = 'dp';
Widget_BoundsIndex_Multiplier = 525270717;
Widget_Children = 'dj';
Widget_ConfigListeners = 'ck';
Widget_ConfigTriggers = 'cr';
Widget_ContainerActions = 'bx';
Widget_GetItems = 'dd';
Widget_Height = 'f';
Widget_Height_Multiplier = 617892681;
Widget_GetID = 'i';
Widget_GetID_Multiplier = 130418737;
Widget_GetIndex = 'l';
Widget_GetIndex_Multiplier = 12045729;
Widget_ItemID = 'dy';
Widget_ItemID_Multiplier = 885494065;
Widget_LoopCycleStatus = 'di';
Widget_LoopCycleStatus_Multiplier = -702807129;
Widget_ModelID = 'ak';
Widget_ModelID_Multiplier = 1418725555;
Widget_ModelType = 'aq';
Widget_ModelType_Multiplier = 610395339;
Widget_ModelZoom = 'bu';
Widget_ModelZoom_Multiplier = -1143505217;
Widget_MouseClickedListeners = 'cn';
Widget_MouseDraggedListeners = 'cl';
Widget_MouseEnteredListeners = 'ca';
Widget_MouseExitedListeners = 'cx';
Widget_MouseHoverListeners = 'cd';
Widget_MouseMovedListeners = 'ct';
Widget_MousePressedListeners = 'cg';
Widget_MouseReleasedListeners = 'cp';
Widget_Name = 'bt';
Widget_Opcodes = 'do';
Widget_RenderListeners = 'ce';
Widget_Root = 'br';
Widget_RootID = 'a';
Widget_RootID_Multiplier = 571953607;
Widget_RotationX = 'af';
Widget_RotationX_Multiplier = -558773065;
Widget_RotationY = 'bd';
Widget_RotationY_Multiplier = -407401667;
Widget_RotationZ = 'by';
Widget_RotationZ_Multiplier = 983508913;
Widget_ScrollHeight = 'ac';
Widget_ScrollHeight_Multiplier = -235599791;
Widget_ScrollListeners = 'cq';
Widget_ScrollWidth = 'ar';
Widget_ScrollWidth_Multiplier = 549133121;
Widget_ScrollX = 's';
Widget_ScrollX_Multiplier = -2136744347;
Widget_ScrollY = 'c';
Widget_ScrollY_Multiplier = -404148817;
Widget_SelectedActionName = 'bl';
Widget_ShadowColour = 'aw';
Widget_ShadowColour_Multiplier = -428991899;
Widget_SkillListeners = 'cj';
Widget_SkillTriggers = 'ch';
Widget_SpellName = 'dq';
Widget_SpriteID = 'ax';
Widget_SpriteID_Multiplier = -18357319;
Widget_StackSize = 'dr';
Widget_StackSize_Multiplier = -207671017;
Widget_GetStackSizes = 'dh';
Widget_TableListeners = 'cw';
Widget_TableTriggers = 'cb';
Widget_GetText = 'bw';
Widget_TextColour = 'ah';
Widget_TextColour_Multiplier = -616024881;
Widget_TextDrawingAreaIndex = 'bf';
Widget_TextDrawingAreaIndex_Multiplier = 190674391;
Widget_TextureID = 'ai';
Widget_TextureID_Multiplier = 128139607;
Widget_Tooltip = 'dm';
Widget_Width = 'v';
Widget_Width_Multiplier = 17877611;
Widget_GetRelativeX = 'z';
Widget_GetRelativeX_Multiplier = -582288213;
Widget_GetRelativeY = 'x';
Widget_GetRelativeY_Multiplier = -672908551;
Widget_isFlippedHorizontally = 'ao';
Widget_isFlippedVertically = 'ag';
Widget_isHidden = 'p';
Widget_isTypeFaceShadowed = 'au';
{* WidgetItemNode - 2 Hooks *}
WidgetItemNode = 'x';
WidgetItemNode_IDs = 'i';
WidgetItemNode_StackSizes = 'k';
{* WidgetNode - 1 Hooks *}
WidgetNode = 'e';
WidgetNode_ID = 'g';
WidgetNode_ID_Multiplier = -247799505;
{* World - 7 Hooks *}
World = 'f';
World_Activity = 'w';
World_Domain = 'e';
World_Index = 'u';
World_Index_Multiplier = -45110487;
World_Location = 'm';
World_Location_Multiplier = 1647926875;
World_Mask = 'i';
World_Mask_Multiplier = -1922708461;
World_Population = 'k';
World_Population_Multiplier = -1231659147;
World_WorldID = 'g';
World_WorldID_Multiplier = 436539621;
2014-11-27 18:28:40
2014-11-30 09:28:49
2014-11-30 09:39:27
From: elfyyy
Just another quick update on the new reflection include. Due to the vast and overwhelming opinion of other osr scripters, I have stopped working on the new PS include and am now basically finished with a completely object oriantated version written in lape to be used with @Aerolib.
I don't have it on github currently as I have been out of town and am not on my main computer. If anyone want's to help me test it please let me know! I will hopefully have it released by the end of the week. I will still keep the PS version updated with hooks, but will be focusing entirely on the lape version.
@Fitta @Harrier @Rlp @ineedbot
2014-11-30 20:33:23
From: Fitta
Upload it somewhere and I'll port my Rock Crab script and release it :)
Edit: Make a catchy name for it..
2014-11-30 23:51:15
2014-12-01 14:37:49
From: elfyyy
Just Added it to github @Fitta; It's still a super early release so please let me know of any bugs. It will update hooks and it will let you know when there is an updated version of the include. I will document it and add credits soon!
2014-12-01 16:29:25
From: elfyyy
Just Added it to github @Fitta; It's still a super early release so please let me know of any bugs. It will update hooks and it will let you know when there is an updated version of the include. I will document it and add credits soon!
2014-12-01 20:52:46
program Template;
{$DEFINE SMART}
{$i AeroLib/AeroLib.Simba}
{$i AeroLib/Reflection/Reflection.simba}
begin
initAL;
setupReflection;
end.
function TReflectionTiles.TileOnMS(Tile: TPoint): Boolean;
var
Point: TPoint;
begin
Point := Reflect.Tiles.TileToMM(Tile);
Result := PointInBox(Point, intToBox(MSX1, MSY1, MSX2, MSY2));
end;
2014-12-01 23:55:48
function TReflectionPlayer.GetInteractingNPCIndice: Integer;
var
Me: Integer;
begin
Me := Reflect.Smart.GetObject(0, Client_Player);
Result := Reflect.Smart.GetInt(Me, Actor_Interacting);
Reflect.Smart.FreeObject(Me);
end; It would be useful for combat scripts and fishing scripts, to see if you are interacting with the fishing spot/npc for not rather than checking for the animation to timeout.function GetQueue:TPoint;
var me, i, x, y : integer;
begin
Me := SmartGetFieldObject(SmartCurrentTarget, 0, client_player);
X := (SmartGetFieldInt(SmartCurrentTarget, 0, client_baseX) * client_baseX_Multiplier);
Y := (SmartGetFieldInt(SmartCurrentTarget, 0, client_baseY) * client_baseY_Multiplier);
result := Point(x+SmartGetFieldArrayInt(SmartCurrentTarget, Me, Actor_PathX, 0), y+SmartGetFieldArrayInt(SmartCurrentTarget, Me, Actor_PathY, 0));
SmartFreeObject(SmartCurrentTarget, Me);
end;With 'while(GetQueue <> R_GetTileGlobal) do sleep(25);' for a very fast check if the player is moving, I used it in a private chin script, was getting about 100k xp an hour on reds.2014-12-02 07:37:39
From: Fitta
Add GetIndex for player.simba please :((
From: Fitta
Elfyyy, we really need this
function TReflectionTiles.TileOnMS(Tile: TPoint): Boolean;
var
Point: TPoint;
begin
Point := Reflect.Tiles.TileToMM(Tile);
Result := PointInBox(Point, intToBox(MSX1, MSY1, MSX2, MSY2));
end;
From: ineedbot
Could you add:It would be useful for combat scripts and fishing scripts, to see if you are interacting with the fishing spot/npc for not rather than checking for the animation to timeout.function TReflectionPlayer.GetInteractingNPCIndice: Integer;
var
Me: Integer;
begin
Me := Reflect.Smart.GetObject(0, Client_Player);
Result := Reflect.Smart.GetInt(Me, Actor_Interacting);
Reflect.Smart.FreeObject(Me);
end;
And I usedWith 'while(GetQueue <> R_GetTileGlobal) do sleep(25);' for a very fast check if the player is moving, I used it in a private chin script, was getting about 100k xp an hour on reds.function GetQueue:TPoint;
var me, i, x, y : integer;
begin
Me := SmartGetFieldObject(SmartCurrentTarget, 0, client_player);
X := (SmartGetFieldInt(SmartCurrentTarget, 0, client_baseX) * client_baseX_Multiplier);
Y := (SmartGetFieldInt(SmartCurrentTarget, 0, client_baseY) * client_baseY_Multiplier);
result := Point(x+SmartGetFieldArrayInt(SmartCurrentTarget, Me, Actor_PathX, 0), y+SmartGetFieldArrayInt(SmartCurrentTarget, Me, Actor_PathY, 0));
SmartFreeObject(SmartCurrentTarget, Me);
end;
And one more request is that you add a 'safe' or 'perfect' path for tricky paths that require extra care while navigating around obstacles and stuff.
TReflectionInventory.IsFull cause 'Error: Access violation at line 472' on SimbaEx.simba
Procedure Pointer.Inc(Size: Int64);2014-12-02 15:49:34
From: elfyyy
Ok.
Will do
I'll add those. The error is caused by a bad function override in Aerlib. I'll make a pull request to have it removed. Until then, comment out this entire function:Procedure Pointer.Inc(Size: Int64);
EDIT: Please don't release any scripts using this include yet, as I will be making some changes and don't want to break any scripts for people!
2014-12-02 16:40:43
From: Cheddy
R66 Hooks If You Want =)
Pm me if there are any naming issues or breaks. I will try to fix =)
Cacheable Node: gy
---------------------------------
Prev -> co
Next -> cn
Node: gf
---------------------------------
UID -> dw
Prev -> ee
Next -> el
public void unlink() {
if(this.cn != null) { //Next
this.cn.co = this.co; //this.next.prev = this.prev
this.co.cn = this.cn; //this.prev.next = this.next
this.co = null;
this.cn = null;
}
}
public void unlink() {
if(this.el != null) { //Next
this.el.ee = this.ee; //this.next.prev = this.prev
this.ee.el = this.el; //this.prev.next = this.next
this.ee = null;
this.el = null;
}
}
2014-12-02 17:40:34
From: Brandon
Not sure how but I think your CacheableNode's next and previous are swapped? :S Maybe I'm wrong.. I have:
Cacheable Node: gy
---------------------------------
Prev -> co
Next -> cn
Node: gf
---------------------------------
UID -> dw
Prev -> ee
Next -> el
and the code:
gy:
public void unlink() {
if(this.cn != null) { //Next
this.cn.co = this.co; //this.next.prev = this.prev
this.co.cn = this.cn; //this.prev.next = this.next
this.co = null;
this.cn = null;
}
}
gf:
public void unlink() {
if(this.el != null) { //Next
this.el.ee = this.ee; //this.next.prev = this.prev
this.ee.el = this.el; //this.prev.next = this.next
this.ee = null;
this.el = null;
}
}
??? But you have one having the "if statement" being identified as prev and the other identifying it as next for the same pattern (aload, getfield, ifnonnull)?
2014-12-02 19:24:13
2014-12-02 23:13:21
From: Fitta
Elfyy, for some weird reason your GetUpText gets the last menu option instead of the first..
Reason was this…
Client_MenuActions: tHook = ['client.iq', 1];
this is the correct hook.
Edit, still not working….
2014-12-04 16:58:29
From: elfyyy
I'll look at it in a bit. Not gonna be working on it much for a little as I have exams this week and next! :'(
2014-12-04 19:53:01
From: ineedbot
Alright the pointer.inc was fixed, thats good, but smartGraphics won't work.
Doing any smartGraphics procedure does this error: Error: The bitmap[-1] does not exist at line 33 on smartGraphics.simba
2014-12-04 20:13:47
From: elfyyy
Does smartgraphics work normally with Aerolib?
2014-12-04 21:48:41
From: Wetish
It works for me. You just call it differently.
OS_SMART.__Graphics.DrawCircle(Point(x,y),3);
2014-12-04 22:02:19
From: ineedbot
Well i guess I'll use aerolib's smartgraphics then, thanks
2014-12-05 16:44:10
Hook Leaked in: Get3DObject
Hook Leaked in: GetObject
Hook Leaked in: Get3DObject
Hook Leaked in: GetObject
Hook Leaked in: Get3DObject
Hook Leaked in: GetObject
Please report this log to the reflection team, terminating2014-12-05 17:16:02
2014-12-05 17:26:31
From: The Mayor
What happened to that super reflection include tls was working on?
2014-12-05 19:38:35
From: ineedbot
TReflectObject.GetAt causes:Hook Leaked in: Get3DObject
Hook Leaked in: GetObject
Hook Leaked in: Get3DObject
Hook Leaked in: GetObject
Hook Leaked in: Get3DObject
Hook Leaked in: GetObject
Please report this log to the reflection team, terminating
From: ineedbot
Also just one inconstancy, TReflectionInventory.GetAll must be called like _items := TReflectionInventory.GetAll; while NPCs.GetAll; and Objects.GetAll; doesn't.
From: ineedbot
Also it seems I can't get any Objects with Objects.GetAll;, I found out that its returning objects from up to 70 tiles away…
2014-12-05 19:54:26
From: Fitta
Elfyy, for some weird reason your GetUpText gets the last menu option instead of the first..
Reason was this…
Client_MenuActions: tHook = ['client.iq', 1];
this is the correct hook.
Edit, still not working….
Bank Bank booth / 2 more options[Bank Bank booth, Walk here, Examine Bank booth, Cancel]
2014-12-05 20:54:07
From: elfyyy
Seems Fine to me…Bank Bank booth / 2 more options
Thought you might have meant choose option, but it works fine also:[Bank Bank booth, Walk here, Examine Bank booth, Cancel]
2014-12-05 20:57:34
From: elfyyy
Ty very much, fixed it and pushed to Github :)
One of the changes I am going to do, same with GroundItems.
Not sure what you mean? If your getting objects that far away, that's expected since you get all? Or am I not understanding what you mean?
AObject.Get(objGame); Will return ALL Game Objects in loaded region.
AObject.Get(objGam, 10); Willl return ALL Game Objects within 10 tiles.
2014-12-05 21:20:50
From: Fitta
:S crazy shit.
btw, how much are you planning to change..?
From: ineedbot
Well I'm doing AOBject.Get(ObjGame, 20); and I writeln(TReflectionTiles.DistanceFromTile(AOBject.tile) and it returns 70(or around that number).
Also mapwalking might click the run button over and over if the path overlaps it.
Oh and blindwalking just spam clicks the tile until its there, doesn't check if its moving or FFlag is up etc.
2014-12-05 21:22:55
From: elfyyy
Not sure. Probably just make it all OOP like the example I talked about to @ineedbot;
You're helping a bunch hahaha. Yeah all of those are mistakes :P. Gimme some mins and I'll edit back when I update it!
2014-12-06 22:37:35
var
OurInv: TReflectInventoryArray;
GroundItems: TReflectGroundItemArray;
begin
OurInv.GetAll;
GroundItems.GetAll;
WriteLn(OurInv);
WriteLn(GroundItems);
end.
2014-12-06 23:45:34
From: elfyyy
Just updated on github. I made grounditems and Inventory OOP like the rest of the include. So now you call:
var
OurInv: TReflectInventoryArray;
GroundItems: TReflectGroundItemArray;
begin
OurInv.GetAll;
GroundItems.GetAll;
WriteLn(OurInv);
WriteLn(GroundItems);
end.
2014-12-07 03:24:18
2014-12-07 08:26:31
From: ineedbot
Sweet.
objects are now returning nearby objects and now are useable, but it slows down the script soo much… a simple object.getAt(Objgame, tile) takes almost half a second. If you can find a way to speed this up, it would be great.
From: Cheddy
Client.getRegion().getSceneTiles[plane][localX][localY].getObjects();
That's the efficient way to do it. Just get that specific tile from the region and then load the objects from that :-)
It took: 0ms for (1 * 1) Tiles
It took: 0ms for (2 * 2) Tiles
It took: 0ms for (3 * 3) Tiles
It took: 0ms for (4 * 4) Tiles
It took: 0ms for (5 * 5) Tiles
It took: 0ms for (6 * 6) Tiles
It took: 15ms for (7 * 7) Tiles
It took: 16ms for (8 * 8) Tiles
It took: 16ms for (9 * 9) Tiles
It took: 15ms for (10 * 10) Tiles
It took: 16ms for (11 * 11) Tiles
It took: 15ms for (12 * 12) Tiles
It took: 31ms for (13 * 13) Tiles
It took: 16ms for (14 * 14) Tiles
It took: 15ms for (15 * 15) Tiles
It took: 31ms for (16 * 16) Tiles
It took: 31ms for (17 * 17) Tiles
It took: 32ms for (18 * 18) Tiles
It took: 32ms for (19 * 19) Tiles
It took: 46ms for (20 * 20) Tiles
It took: 47ms for (21 * 21) Tiles
It took: 31ms for (22 * 22) Tiles
It took: 47ms for (23 * 23) Tiles
It took: 63ms for (24 * 24) Tiles
It took: 62ms for (25 * 25) Tiles
It took: 47ms for (26 * 26) Tiles
It took: 79ms for (27 * 27) Tiles
It took: 93ms for (28 * 28) Tiles
It took: 78ms for (29 * 29) Tiles
It took: 78ms for (30 * 30) Tiles
It took: 94ms for (31 * 31) Tiles
It took: 125ms for (32 * 32) Tiles
It took: 109ms for (33 * 33) Tiles
It took: 109ms for (34 * 34) Tiles
It took: 125ms for (35 * 35) Tiles
It took: 156ms for (36 * 36) Tiles
It took: 141ms for (37 * 37) Tiles
It took: 140ms for (38 * 38) Tiles
It took: 156ms for (39 * 39) Tiles
It took: 188ms for (40 * 40) Tiles
It took: 172ms for (41 * 41) Tiles
It took: 172ms for (42 * 42) Tiles
It took: 188ms for (43 * 43) Tiles
It took: 219ms for (44 * 44) Tiles
It took: 219ms for (45 * 45) Tiles
It took: 219ms for (46 * 46) Tiles
It took: 234ms for (47 * 47) Tiles
It took: 250ms for (48 * 48) Tiles
It took: 250ms for (49 * 49) Tiles
It took: 266ms for (50 * 50) Tiles
It took: 297ms for (51 * 51) Tiles
It took: 328ms for (52 * 52) Tiles
It took: 312ms for (53 * 53) Tiles
It took: 312ms for (54 * 54) Tiles
It took: 344ms for (55 * 55) Tiles
It took: 360ms for (56 * 56) Tiles
It took: 344ms for (57 * 57) Tiles
It took: 344ms for (58 * 58) Tiles
It took: 375ms for (59 * 59) Tiles
It took: 422ms for (60 * 60) Tiles
It took: 422ms for (61 * 61) Tiles
It took: 422ms for (62 * 62) Tiles
It took: 437ms for (63 * 63) Tiles
It took: 469ms for (64 * 64) Tiles
It took: 468ms for (65 * 65) Tiles
It took: 485ms for (66 * 66) Tiles
It took: 500ms for (67 * 67) Tiles
It took: 532ms for (68 * 68) Tiles
It took: 547ms for (69 * 69) Tiles
It took: 563ms for (70 * 70) Tiles
It took: 610ms for (71 * 71) Tiles
It took: 609ms for (72 * 72) Tiles
It took: 609ms for (73 * 73) Tiles
It took: 609ms for (74 * 74) Tiles
It took: 657ms for (75 * 75) Tiles
It took: 750ms for (76 * 76) Tiles
It took: 719ms for (77 * 77) Tiles
It took: 703ms for (78 * 78) Tiles
It took: 766ms for (79 * 79) Tiles
It took: 781ms for (80 * 80) Tiles
It took: 781ms for (81 * 81) Tiles
It took: 797ms for (82 * 82) Tiles
It took: 859ms for (83 * 83) Tiles
It took: 875ms for (84 * 84) Tiles
It took: 922ms for (85 * 85) Tiles
It took: 859ms for (86 * 86) Tiles
It took: 906ms for (87 * 87) Tiles
It took: 969ms for (88 * 88) Tiles
It took: 953ms for (89 * 89) Tiles
It took: 969ms for (90 * 90) Tiles
It took: 1031ms for (91 * 91) Tiles
It took: 1094ms for (92 * 92) Tiles
It took: 1078ms for (93 * 93) Tiles
It took: 1078ms for (94 * 94) Tiles
It took: 1140ms for (95 * 95) Tiles
It took: 1203ms for (96 * 96) Tiles
It took: 1219ms for (97 * 97) Tiles
It took: 1203ms for (98 * 98) Tiles
It took: 1250ms for (99 * 99) Tiles
It took: 1282ms for (100 * 100) Tiles
It took: 1297ms for (101 * 101) Tiles
It took: 1281ms for (102 * 102) Tiles
It took: 1313ms for (103 * 103) Tiles
It took: 1360ms for (104 * 104) Tiles
2014-12-07 09:31:46
2014-12-07 14:36:40
From: elfyyy
Yup that's the way that we do it @Cheddy;
I did some messing around with the hook caching for them and found a way to speed it up substantially when searching smaller locations. I'm now convinced that object finding is as fast as simba possible can do it. Every object reference is stored in the 'HookCache' and at the end of the function it free's every one in the cache, but now stops at the end of the stored objects.
Here's a test showing speeds now:
It took: 0ms for (1 * 1) Tiles
It took: 0ms for (2 * 2) Tiles
It took: 0ms for (3 * 3) Tiles
It took: 0ms for (4 * 4) Tiles
It took: 0ms for (5 * 5) Tiles
It took: 0ms for (6 * 6) Tiles
It took: 15ms for (7 * 7) Tiles
It took: 16ms for (8 * 8) Tiles
It took: 16ms for (9 * 9) Tiles
It took: 15ms for (10 * 10) Tiles
It took: 16ms for (11 * 11) Tiles
It took: 15ms for (12 * 12) Tiles
It took: 31ms for (13 * 13) Tiles
It took: 16ms for (14 * 14) Tiles
It took: 15ms for (15 * 15) Tiles
It took: 31ms for (16 * 16) Tiles
It took: 31ms for (17 * 17) Tiles
It took: 32ms for (18 * 18) Tiles
It took: 32ms for (19 * 19) Tiles
It took: 46ms for (20 * 20) Tiles
It took: 47ms for (21 * 21) Tiles
It took: 31ms for (22 * 22) Tiles
It took: 47ms for (23 * 23) Tiles
It took: 63ms for (24 * 24) Tiles
It took: 62ms for (25 * 25) Tiles
It took: 47ms for (26 * 26) Tiles
It took: 79ms for (27 * 27) Tiles
It took: 93ms for (28 * 28) Tiles
It took: 78ms for (29 * 29) Tiles
It took: 78ms for (30 * 30) Tiles
It took: 94ms for (31 * 31) Tiles
It took: 125ms for (32 * 32) Tiles
It took: 109ms for (33 * 33) Tiles
It took: 109ms for (34 * 34) Tiles
It took: 125ms for (35 * 35) Tiles
It took: 156ms for (36 * 36) Tiles
It took: 141ms for (37 * 37) Tiles
It took: 140ms for (38 * 38) Tiles
It took: 156ms for (39 * 39) Tiles
It took: 188ms for (40 * 40) Tiles
It took: 172ms for (41 * 41) Tiles
It took: 172ms for (42 * 42) Tiles
It took: 188ms for (43 * 43) Tiles
It took: 219ms for (44 * 44) Tiles
It took: 219ms for (45 * 45) Tiles
It took: 219ms for (46 * 46) Tiles
It took: 234ms for (47 * 47) Tiles
It took: 250ms for (48 * 48) Tiles
It took: 250ms for (49 * 49) Tiles
It took: 266ms for (50 * 50) Tiles
It took: 297ms for (51 * 51) Tiles
It took: 328ms for (52 * 52) Tiles
It took: 312ms for (53 * 53) Tiles
It took: 312ms for (54 * 54) Tiles
It took: 344ms for (55 * 55) Tiles
It took: 360ms for (56 * 56) Tiles
It took: 344ms for (57 * 57) Tiles
It took: 344ms for (58 * 58) Tiles
It took: 375ms for (59 * 59) Tiles
It took: 422ms for (60 * 60) Tiles
It took: 422ms for (61 * 61) Tiles
It took: 422ms for (62 * 62) Tiles
It took: 437ms for (63 * 63) Tiles
It took: 469ms for (64 * 64) Tiles
It took: 468ms for (65 * 65) Tiles
It took: 485ms for (66 * 66) Tiles
It took: 500ms for (67 * 67) Tiles
It took: 532ms for (68 * 68) Tiles
It took: 547ms for (69 * 69) Tiles
It took: 563ms for (70 * 70) Tiles
It took: 610ms for (71 * 71) Tiles
It took: 609ms for (72 * 72) Tiles
It took: 609ms for (73 * 73) Tiles
It took: 609ms for (74 * 74) Tiles
It took: 657ms for (75 * 75) Tiles
It took: 750ms for (76 * 76) Tiles
It took: 719ms for (77 * 77) Tiles
It took: 703ms for (78 * 78) Tiles
It took: 766ms for (79 * 79) Tiles
It took: 781ms for (80 * 80) Tiles
It took: 781ms for (81 * 81) Tiles
It took: 797ms for (82 * 82) Tiles
It took: 859ms for (83 * 83) Tiles
It took: 875ms for (84 * 84) Tiles
It took: 922ms for (85 * 85) Tiles
It took: 859ms for (86 * 86) Tiles
It took: 906ms for (87 * 87) Tiles
It took: 969ms for (88 * 88) Tiles
It took: 953ms for (89 * 89) Tiles
It took: 969ms for (90 * 90) Tiles
It took: 1031ms for (91 * 91) Tiles
It took: 1094ms for (92 * 92) Tiles
It took: 1078ms for (93 * 93) Tiles
It took: 1078ms for (94 * 94) Tiles
It took: 1140ms for (95 * 95) Tiles
It took: 1203ms for (96 * 96) Tiles
It took: 1219ms for (97 * 97) Tiles
It took: 1203ms for (98 * 98) Tiles
It took: 1250ms for (99 * 99) Tiles
It took: 1282ms for (100 * 100) Tiles
It took: 1297ms for (101 * 101) Tiles
It took: 1281ms for (102 * 102) Tiles
It took: 1313ms for (103 * 103) Tiles
It took: 1360ms for (104 * 104) Tiles
EDIT: Just pushed changes to github. I didn't completely finish ground items as it will be more difficult since each tile can return an array. I will get to it when I get more free time.
I also changed the naming on ground items to be consistent with objects. TReflectGroundItemArray.Get(). If distance is not entered it will automatically get all, just like for objects,
2014-12-07 16:15:42
From: Fitta
Tell me when you're done changing the names somewhat, I want to go nuts & bananas.
inb4 crazy scripts
From: ineedbot
Oh yeah, its much faster now, thanks! :)
2014-12-07 18:40:15
From: elfyyy
Uhmm, should be pretty close, give me until the end of the week and I'll try to finalize the naming so you can go at it!!
Fantastic!
2014-12-09 18:03:38
2014-12-09 18:47:36
From: ineedbot
I made up with a ID Display very similar to the one I made before. Feel free to do whatever you want with it.
2014-12-10 16:08:10
2014-12-18 15:29:34
2014-12-20 17:53:43
From: elfyyy
Hooks updated to Rev 68
function R_GetMyIndex: Integer;
begin
Result := Reflect.Smart.GetInt(0, Client_PlayerIndex) + 32768;
end; procedure dismissAllRandoms;
var i, j:integer;
_npcs:TReflectNPCArray;
randoms:tstringarray;
begin
randoms := ['molly', 'niles', 'miles', 'giles', 'sandwich lady',
'drunken dwarf', 'genie', 'highwayman', 'dr jekyll', 'cap''n hand', 'security guard',
'rick turpentine', 'mysterious old man', 'frog', 'null', 'mime', 'sergeant damien', 'freaky forester',
'postie pete', 'tilt', 'flippa', 'leo', 'pillory guard', 'evil bob'];
_npcs.GetAll;
for i:=0 to high(_npcs) do begin
if (_npcs[i].Interacting = R_GetMyIndex) then begin
for j:=0 to high(randoms) do begin
if (pos(randoms[j], lowercase(_npcs[i].Name)) > 0) then begin
R_InteractTile(_npcs[i].Tile, 'Dismiss', 0, 0, 50);
sleep(2500+random(1000));
end;
end;
end;
end;
end;
2014-12-20 18:01:39
From: ineedbot
…
2014-12-22 21:35:31
215 Classes Found
Starting Analysers..
|>Node = gv
^ UID................ gv.ee
^ Next............... gv.ej
^ Prev............... gv.ey
|>CacheableNode = gk
^ Next............... gk.cp
^ Prev............... gk.ci
|>RenderableNode = cc
^ ModelHeight........ cc.cg * -1216200879
|>AnimableNode = p
|>Model = ck
|>AnimationSequence = af
|>Npc Definition = aq
^ Actions............ aq.h
^ Name............... aq.c
^ ID................. aq.w * 2072508285
^ CombatLevel........ aq.v * -740355527
|>LinkedList = fw
^ Head............... fw.l
^ Current............ fw.y
|>Actor = aa
^ Animation.......... aa.bm * 495733559
^ QueueX............. aa.br
^ QueueY............. aa.by
^ WorldX............. aa.h * 1604947505
^ WorldY............. aa.k * 917902939
^ SpokenText......... aa.aa
^ Combat Cycle....... aa.an * -79764281
^ Health............. aa.ai * -1515030189
^ MaxHealth.......... aa.ay * 1629208675
^ InteractingIndex... aa.ab * -1596270757
|>Npc = az
^ Def................ az.l
|>ObjectDefinition = am
^ Actions............ am.an
^ Name............... am.a
|>Buffer = dk
|>Widget = eu
^ Children........... eu.dc
^ GetIDs............. eu.dp
^ StackSizes......... eu.dr
^ ItemAmount......... eu.dm * -1545665157
^ ItemID............. eu.dg * 1147860247
^ WidgetID........... eu.b * -166984235
^ Name............... eu.bq
^ GetText............ eu.bn
|>GameShell = ee
|>Client = Client
^ LoopCycle.......... client.i * -1399128113
^ GetRegion.......... er.df
^ GetPlane........... fo.hd * 1140350779
^ MenuCount.......... client.in * -2141825229
^ MenuWidth.......... er.io * -659962767
^ MenuHeight......... ak.iy * -39793823
^ MenuOptions........ client.ir
^ MenuActions........ client.iu
^ MenuX.............. dm.hw * 1828771929
^ MenuY.............. eh.hy * -1589416691
^ BaseX.............. b.ck * -1730369117
^ BaseY.............. aa.ca * 1423972157
^ GetWidgets......... eu.l
^ GetLocalPlayer..... z.hg
^ TileSettings....... c.y
^ TileHeights........ c.l
^ IsMenuOpen......... client.hn
^ LocalNpcs.......... client.br
^ NpcIndices......... client.bz
^ Sine............... cu.az
^ Cosine............. cu.ad
^ CameraPitch........ aw.fq * -1280666421
^ CameraYaw.......... l.fo * -1602289579
^ CameraX............ bz.fk * 1327254957
^ CameraY............ ep.fv * -2010995499
^ CameraZ............ f.fm * 766099511
^ GroundItems........ client.hu
^ GameSettings....... fg.g
^ MapScale........... client.ft * -1898854141
^ MapAngle........... client.di * 633858349
^ MapOffset.......... client.do * -844428383
^ CurrentLevels...... client.hl
^ RealLevels......... client.hc
^ Experiences........ client.hi
^ Energy............. client.jd * 1236262691
^ Weight............. client.ja * 1399852355
^ Rights............. client.jo * -923297739
^ CurrentWorld....... client.c * 18564717
^ LoginState......... client.u * -2035261693
|>Region = cd
^ SceneTiles......... cd.c
|>BoundaryObject = cg
^ ID................. cg.f * -77259343
|>GameObject = ct
^ ID................. ct.o * 2122780761
|>GroundDecoration = cv
^ ID................. cv.w * -1921889485
|>WallDecoration = cf
^ ID................. cf.n * 1625964717
|>SceneTile = cq
^ GameObject......... cq.a
^ GroundDecoration... cq.t
^ WallDecoration..... cq.f
^ BoundaryObject..... cq.x
|>Player = g
^ Definition......... g.y
^ Name............... g.l
|>Item = q
^ ID................. q.l * 1182524155
^ Amount............. q.y * -1258609723
Process finished with exit code 0
2015-01-03 00:42:08
2015-01-03 08:06:49
From: ineedbot
Love having you keeping the hooks up to date, however when are you going to make the lape include official so I can release some scripts for it?
2015-01-03 22:55:07
From: elfyyy
Haha so do I! I'm actually basically finished as of now. I have everything done, just need to add locations to widgets, which I will probably end up doing after release. If I have time (Working on my updater atm) I'll write a quick guide on my tutorial thread, and post the include up and call it ready to script with!
2015-01-06 14:22:37
2015-01-08 08:37:30
Starting Analysers..
|>Node = gn -> Extends java/lang/Object
^ UID................gn.ef -> J
^ Next...............gn.ew -> Lgn;
^ Prev...............gn.ew -> Lgn;
|>Cacheable = gl -> Extends gn
^ Next...............gl.cw -> Lgl;
^ Prev...............gl.cs -> Lgl;
|>Renderable = ca -> Extends gl
^ ModelHeight........ca.cn * 1931219915 -> I
|>Animable = h -> Extends ca
|>Model = cx -> Extends ca
|>AnimationSequence = ah -> Extends gl
|>NpcDefinition = an -> Extends gl
^ Actions............an.x -> [Ljava/lang/String;
^ Name...............an.c -> Ljava/lang/String;
^ ID.................an.k * -948022345 -> I
^ CombatLevel........an.e * 122508509 -> I
|>LinkedList = fb -> Extends java/lang/Object
^ Head...............fb.g -> Lgn;
^ Current............fb.j -> Lgn;
|>Actor = as -> Extends ca
^ Animation..........as.bq * 47963277 -> I
^ QueueX.............as.bi -> [I
^ QueueY.............as.bj -> [I
^ WorldX.............as.x * 2098213139 -> I
^ WorldY.............as.t * 949760027 -> I
^ SpokenText.........as.as -> Ljava/lang/String;
^ CombatCycle........as.ao * -132651787 -> I
^ Health.............as.ad * 1379153323 -> I
^ MaxHealth..........as.ab * -971553753 -> I
^ Interactingindex...as.af * -1599423227 -> I
|>Npc = az -> Extends as
^ Definition.........az.g -> Lan;
|>ObjectDefinition = al -> Extends gl
^ Actions............al.ap -> [Ljava/lang/String;
^ Name...............al.y -> Ljava/lang/String;
|>Buffer = df -> Extends gn
|>Widget = ec -> Extends gn
^ Children...........ec.dx -> [Lec;
^ GetIDs.............ec.dc -> [I
^ StackSizes.........ec.dk -> [I
^ ItemAmount.........ec.dw * -555895615 -> I
^ ItemID.............ec.ds * 1369596475 -> I
^ WidgetID...........ec.p * -1461666791 -> I
^ Name...............ec.bw -> Ljava/lang/String;
|>GameShell = ef -> Extends java/applet/Applet
|>Client = client -> Extends ef
^ LoopCycle..........client.v * -104058127 -> I
^ GetRegion..........client.dd -> Lcc;
^ GetPlane...........bs.hs * 1458950069 -> I
^ MenuCount..........client.ip * 41640419 -> I
^ MenuWidth..........bv.id * -1377744169 -> I
^ MenuHeight.........client.ib * -1129284701 -> I
^ MenuOptions........client.ii -> [Ljava/lang/String;
^ MenuActions........client.in -> [Ljava/lang/String;
^ IsMenuOpen.........client.hl -> Z
^ MenuX..............cg.hw * 743814199 -> I
^ MenuY..............cn.hv * 2006274017 -> I
^ BaseX..............w.cx * -1676109665 -> I
^ BaseY..............f.cr * -484655533 -> I
^ GetWidgets.........ec.g -> [[Lec;
^ GetLocalPlayer.....en.hn -> Lz;
^ TileSettings.......c.j -> [[[B
^ TileHeights........c.g -> [[[I
^ LocalNpcs..........client.bi -> [Laz;
^ NpcIndices.........client.bv -> [I
^ Sine...............co.az -> [I
^ Cosine.............co.ae -> [I
^ CameraPitch........ao.fd * 918936107 -> I
^ CameraYaw..........client.fo * 1221787769 -> I
^ CameraX............g.fk * -210829173 -> I
^ CameraY............p.fa * 974548229 -> I
^ CameraZ............y.fp * -918634937 -> I
^ GroundItems........client.hp -> [[[Lfb;
^ GameSettings.......fm.z -> [I
^ MapScale...........client.fi * -1469503859 -> I
^ MapAngle...........client.dt * 354393687 -> I
^ MapOffset..........client.dm * 102366111 -> I
^ CurrentLevels......client.hh -> [I
^ RealLevels.........client.hz -> [I
^ Experiences........client.he -> [I
^ Energy.............client.jo * 389552483 -> I
^ Weight.............client.js * -945500193 -> I
^ Rights.............client.jb * -400104091 -> I
^ CurrentWorld.......client.b * 1640745123 -> I
^ LoginState.........dz.s * 3166751 -> I
^ PlayerIndex........client.gb * 328712329 -> I
|>Region = cc -> Extends java/lang/Object
^ SceneTiles.........cc.c -> [[[Lcy;
|>BoundaryObject = cn -> Extends java/lang/Object
^ ID.................cn.l * 980769247 -> I
|>GameObject = cz -> Extends java/lang/Object
^ ID.................cz.p * -1841301077 -> I
|>GroundDecoration = ct -> Extends java/lang/Object
^ ID.................ct.g * 94810389 -> I
|>WallDecoration = cd -> Extends java/lang/Object
^ ID.................cd.d * -1468585503 -> I
|>SceneTile = cy -> Extends gn
^ GameObject.........cy.y -> [Lcz;
^ GroundDecoration...cy.n -> Lct;
^ WallDecoration.....cy.l -> Lcd;
^ BoundaryObject.....cy.w -> Lcn;
|>Player = z -> Extends as
^ Definition.........z.j -> Lfa;
^ Name...............z.g -> Ljava/lang/String;
|>Item = a -> Extends ca
^ ID.................a.g * -1952791939 -> I
^ StackSizes.........a.j * 1213359117 -> I2015-01-08 11:37:08
2015-01-08 22:42:08
From: elfyyy
Hooks updated to revision 69. Note: I didn't have my updater output in pascal script form, so only the lape version is updated. I have class now, but will be able to fix it later, here is a formatted log if you want to do it manually:
Starting Analysers..
|>Node = gn -> Extends java/lang/Object
^ UID................gn.ef -> J
^ Next...............gn.ew -> Lgn;
^ Prev...............gn.ew -> Lgn;
|>Cacheable = gl -> Extends gn
^ Next...............gl.cw -> Lgl;
^ Prev...............gl.cs -> Lgl;
|>Renderable = ca -> Extends gl
^ ModelHeight........ca.cn * 1931219915 -> I
|>Animable = h -> Extends ca
|>Model = cx -> Extends ca
|>AnimationSequence = ah -> Extends gl
|>NpcDefinition = an -> Extends gl
^ Actions............an.x -> [Ljava/lang/String;
^ Name...............an.c -> Ljava/lang/String;
^ ID.................an.k * -948022345 -> I
^ CombatLevel........an.e * 122508509 -> I
|>LinkedList = fb -> Extends java/lang/Object
^ Head...............fb.g -> Lgn;
^ Current............fb.j -> Lgn;
|>Actor = as -> Extends ca
^ Animation..........as.bq * 47963277 -> I
^ QueueX.............as.bi -> [I
^ QueueY.............as.bj -> [I
^ WorldX.............as.x * 2098213139 -> I
^ WorldY.............as.t * 949760027 -> I
^ SpokenText.........as.as -> Ljava/lang/String;
^ CombatCycle........as.ao * -132651787 -> I
^ Health.............as.ad * 1379153323 -> I
^ MaxHealth..........as.ab * -971553753 -> I
^ Interactingindex...as.af * -1599423227 -> I
|>Npc = az -> Extends as
^ Definition.........az.g -> Lan;
|>ObjectDefinition = al -> Extends gl
^ Actions............al.ap -> [Ljava/lang/String;
^ Name...............al.y -> Ljava/lang/String;
|>Buffer = df -> Extends gn
|>Widget = ec -> Extends gn
^ Children...........ec.dx -> [Lec;
^ GetIDs.............ec.dc -> [I
^ StackSizes.........ec.dk -> [I
^ ItemAmount.........ec.dw * -555895615 -> I
^ ItemID.............ec.ds * 1369596475 -> I
^ WidgetID...........ec.p * -1461666791 -> I
^ Name...............ec.bw -> Ljava/lang/String;
|>GameShell = ef -> Extends java/applet/Applet
|>Client = client -> Extends ef
^ LoopCycle..........client.v * -104058127 -> I
^ GetRegion..........client.dd -> Lcc;
^ GetPlane...........bs.hs * 1458950069 -> I
^ MenuCount..........client.ip * 41640419 -> I
^ MenuWidth..........bv.id * -1377744169 -> I
^ MenuHeight.........client.ib * -1129284701 -> I
^ MenuOptions........client.ii -> [Ljava/lang/String;
^ MenuActions........client.in -> [Ljava/lang/String;
^ IsMenuOpen.........client.hl -> Z
^ MenuX..............cg.hw * 743814199 -> I
^ MenuY..............cn.hv * 2006274017 -> I
^ BaseX..............w.cx * -1676109665 -> I
^ BaseY..............f.cr * -484655533 -> I
^ GetWidgets.........ec.g -> [[Lec;
^ GetLocalPlayer.....en.hn -> Lz;
^ TileSettings.......c.j -> [[[B
^ TileHeights........c.g -> [[[I
^ LocalNpcs..........client.bi -> [Laz;
^ NpcIndices.........client.bv -> [I
^ Sine...............co.az -> [I
^ Cosine.............co.ae -> [I
^ CameraPitch........ao.fd * 918936107 -> I
^ CameraYaw..........client.fo * 1221787769 -> I
^ CameraX............g.fk * -210829173 -> I
^ CameraY............p.fa * 974548229 -> I
^ CameraZ............y.fp * -918634937 -> I
^ GroundItems........client.hp -> [[[Lfb;
^ GameSettings.......fm.z -> [I
^ MapScale...........client.fi * -1469503859 -> I
^ MapAngle...........client.dt * 354393687 -> I
^ MapOffset..........client.dm * 102366111 -> I
^ CurrentLevels......client.hh -> [I
^ RealLevels.........client.hz -> [I
^ Experiences........client.he -> [I
^ Energy.............client.jo * 389552483 -> I
^ Weight.............client.js * -945500193 -> I
^ Rights.............client.jb * -400104091 -> I
^ CurrentWorld.......client.b * 1640745123 -> I
^ LoginState.........dz.s * 3166751 -> I
^ PlayerIndex........client.gb * 328712329 -> I
|>Region = cc -> Extends java/lang/Object
^ SceneTiles.........cc.c -> [[[Lcy;
|>BoundaryObject = cn -> Extends java/lang/Object
^ ID.................cn.l * 980769247 -> I
|>GameObject = cz -> Extends java/lang/Object
^ ID.................cz.p * -1841301077 -> I
|>GroundDecoration = ct -> Extends java/lang/Object
^ ID.................ct.g * 94810389 -> I
|>WallDecoration = cd -> Extends java/lang/Object
^ ID.................cd.d * -1468585503 -> I
|>SceneTile = cy -> Extends gn
^ GameObject.........cy.y -> [Lcz;
^ GroundDecoration...cy.n -> Lct;
^ WallDecoration.....cy.l -> Lcd;
^ BoundaryObject.....cy.w -> Lcn;
|>Player = z -> Extends as
^ Definition.........z.j -> Lfa;
^ Name...............z.g -> Ljava/lang/String;
|>Item = a -> Extends ca
^ ID.................a.g * -1952791939 -> I
^ StackSizes.........a.j * 1213359117 -> I
I also doubt the lape version will auto update, so go download from: https://github.com/Elfyyy/OSR-Reflection
I will get the updating of the include finished soon as the current proxy method wasn't working all the time
2015-01-08 22:55:07
From: ineedbot
Great work, however, it seems the hooks are still outdated or wrong :/ I used someone elses getGameState hook and it returns 10-30 as normal.
2015-01-09 00:13:49
const
ReflectionRevision = '69';
{*Node*}
Node = 'ew';
Node_id = 'ef';
Node_next = 'ew';
{*LinkedList*}
LinkedList = 'j';
LinkedList_head = 'g';
{*Actor*}
Actor = 'as';
Actor_combatCycle = 'ao';
Actor_activeText = 'as';
Actor_animation = 'bq';
Actor_Health = 'ad';
Actor_maxHealth = 'ab';
Actor_interacting = 'af';
Actor_localX = 'x';
Actor_localY = 't';
{*Actor Multipliers*}
Actor_animation_Multiplier = 47963277;
Actor_combatCycle_Multiplier = -132651787;
Actor_Health_Multiplier = 1379153323;
Actor_maxHealth_Multiplier = -971553753;
Actor_interacting_Multiplier = -1599423227;
Actor_localX_Multiplier = 2098213139;
Actor_localY_Multiplier = 949760027;
{*Item*}
Item = 'q';
Item_id = 'l';
Item_stackSize = 'y';
{*Item Multipliers*}
Item_id_Multiplier = 1182524155;
Item_stackSize_Multiplier = -1258609723;
{*ObjectDefinition*}
ObjectDefinition = 'al';
ObjectDefinition_name = 'y';
ObjectDefinition_actions = 'ap';
{*NpcDefinition*}
NpcDefinition = 'an';
NpcDefinition_actions = 'x';
NpcDefinition_name = 'c';
NpcDefinition_id = 'k';
NpcDefinition_level = 'e';
{*NpcDefinition Multipliers*}
NpcDefinition_id_Multiplier = -948022345;
NpcDefinition_level_Multiplier = 122508509;
{*Npc*}
Npc = 'az';
Npc_definition = 'g';
{*Player*}
Player = 'z';
Player_definition = 'j';
Player_name = 'g';
{*Region*}
Region = 'cc';
Region_sceneTiles = 'c';
{*WallObject*}
WallObject = 'cd';
WallObject_hash = 'd';
{*WallObject Multipliers*}
WallObject_hash_Multiplier = -1468585503;
{*FloorDecorationObject*}
FloorDecorationObject = 'ct';
FloorDecorationObject_hash = 'g';
FloorDecorationObject_hash_Multiplier = 94810389;
{*BoundaryObject*}
BoundaryObject = 'cn';
BoundaryObject_hash = 'l';
{*BoundaryObject Multipliers*}
BoundaryObject_hash_Multiplier = 980769247;
{*SceneTile*}
SceneTile = 'cy';
SceneTile_WorldObjects = 'y';
SceneTile_WallObject = 'l';
SceneTile_BoundaryObject = 'w';
SceneTile_FloorObject = 'n';
{*WorldObject*}
WorldObject = 'cz';
WorldObject_hash = 'p';
WorldObject_Get_x = 'g';
WorldObject_Get_y = 'j';
{*WorldObject Multipliers*}
WorldObject_hash_Multiplier = 2122780761;
WorldObject_Get_x_Multiplier = 830319895;
WorldObject_Get_y_Multiplier = -449096723;
{*Widget*}
Widget = 'ec';
Widget_getRelativeX = 'i';
Widget_getRelativeY = 'x';
Widget_getActions = 'bj';
Widget_getID = 'dc';
Widget_getItems = 'dw';
Widget_getStackSizes = 'dk';
Widget_getText = 'bw';
Widget_height = 'k';
Widget_width = 'h';
{*Widget Multipliers*}
Widget_getRelativeX_Multiplier = -2146529991;
Widget_getRelativeY_Multiplier = 275292991;
Widget_getID_Multiplier = -166984235;
Widget_height_Multiplier = 1230511175;
Widget_width_Multiplier = 432045399;
{*Client*}
client_region = 'client.dd';
client_menuCount = 'client.ip';
client_baseY = 'f.cr';
client_baseX = 'w.cx';
client_widgets = 'ec.g';
client_menuActions = 'client.in';
client_player = 'en.hn';
client_plane = 'bs.hs';
client_groundSettings = 'c.j';
client_groundHeights = 'c.g';
client_menuWidth = 'bv.id';
client_isMenuOpen = 'client.hl';
client_cameraPitch = 'ao.fd';
client_cameraYaw = 'client.fo';
client_cameraX = 'g.fk';
client_cameraY = 'p.fa';
client_cameraZ = 'y.fp';
client_npcIndices = 'client.bv';
client_npcs = 'client.bi';
client_groundItems = 'client.hp';
client_login_state = 'dz.s';
client_settings = 'fm.z';
client_LoopCycle = 'client.v';
client_menuHeight = 'client.ib';
client_menuOptions = 'client.ii';
client_menuX = 'cg.hw';
client_menuY = 'cn.hv';
client_map_scale = 'client.fi';
client_map_offset = 'client.dm';
client_compassAngle = 'client.dt';
client_levels = 'client.hh';
client_real_levels = 'client.hz';
client_experiences = 'client.he';
client_run_energy = 'client.jo';
client_weight = 'client.js';
{*Client Multipliers*}
client_menuCount_Multiplier = 41640419;
client_baseY_Multiplier = -484655533;
client_baseX_Multiplier = -1676109665;
client_plane_Multiplier = 1458950069;
client_menuWidth_Multiplier = -1377744169;
client_cameraPitch_Multiplier = 918936107;
client_cameraYaw_Multiplier = 1221787769;
client_cameraX_Multiplier = -210829173;
client_cameraY_Multiplier = 974548229;
client_cameraZ_Multiplier = -918634937;
client_LoopCycle_Multiplier = -104058127;
client_menuHeight_Multiplier = -1129284701;
client_menuX_Multiplier = 743814199;
client_menuY_Multiplier = 2006274017;
client_login_state_Multiplier = 3166751;
client_map_scale_Multiplier = -1469503859;
client_map_offset_Multiplier = 102366111;
client_compassAngle_Multiplier = 354393687;
client_run_energy_Multiplier = 389552483;
client_weight_Multiplier = -945500193;2015-01-09 01:46:03
2015-01-09 08:13:14
2015-01-09 09:17:32
2015-01-09 09:25:50
From: Hasselihas
Correct me if I'm wrong but in the current Reflection.simba the IncludeRevision is 97 when it should be 98. Atleast for me at 97 it just keeps constantly trying to update the include. My knowledge is poor but atleast changing that fixed the issue for me.
2015-01-09 17:31:42
2015-01-09 17:54:16
From: elfyyy
Thread updated, Lape version "Officially" released!
program new;
{$DEFINE SMART}
{$i AeroLib/AeroLib.Simba}
{$i AeroLib/Reflection/Reflection.Simba}
var _objects : TReflectObjectArray;
_t : timer;
begin
initAL;
setupReflection;
_t.start;
_objects.Get(ObjGame, 20);
writeln(_objects);
writeln(_t.timeElapsed);
end.returnsCompiled successfully in 4594 ms.
[=================================]
| < Aero|Library > |
| ---------------- |
| Version : 1.0 |
| Revision : 2 |
[=================================]
[AL] Initiating AeroLib...
[AL] Checking version...
[AL] Currently up to date.
[AL] Loaded 2 MSObjects.
[AL] Loaded 2 GroundItems.
Paired with SMART[6928]
[AL] Startup complete!
[Status] [Reflection] Reflection succesfully setup!
[]
36469
Successfully executed.2015-01-09 19:14:15
From: ineedbot
Great news! I'll deff look into this.
Objects are not working… :/returnsprogram new;
{$DEFINE SMART}
{$i AeroLib/AeroLib.Simba}
{$i AeroLib/Reflection/Reflection.Simba}
var _objects : TReflectObjectArray;
_t : timer;
begin
initAL;
setupReflection;
_t.start;
_objects.Get(ObjGame, 20);
writeln(_objects);
writeln(_t.timeElapsed);
end.Compiled successfully in 4594 ms.
[=================================]
| < Aero|Library > |
| ---------------- |
| Version : 1.0 |
| Revision : 2 |
[=================================]
[AL] Initiating AeroLib...
[AL] Checking version...
[AL] Currently up to date.
[AL] Loaded 2 MSObjects.
[AL] Loaded 2 GroundItems.
Paired with SMART[6928]
[AL] Startup complete!
[Status] [Reflection] Reflection succesfully setup!
[]
36469
Successfully executed.
I am logged in and there are objects around me.
procedure handle_Zapper;
var
Objs: TReflectObjectArray;
I: Integer;
T: Timer;
begin
If (ZapperTimer.timeElapsed < Me.Integers[Int_NextZapperCheck])or(Not UseZappers)or(Failed) then
Exit;
T.start;
Objs.Get(ObjGame, 26256, 24);
For I:=0 to High(Objs)do
If (Objs[I].ID = 26256)then
begin
Debug('Found zapper -> Clicking', False);
Me.Integers[Int_Prio_NextPot] := 18;
handle_flickPrayer;
If Reflect.Tiles.DistanceFromTile(Objs[I].Tile) > 5 then
locPlayer.BlindWalkMM(Objs[I].Tile, 3);
handle_flickPrayer;
drink_Potions;
if interactTile(Objs[I].Tile, 'Activate', 'Activate', 5, 5, mouse_Left, 170+Random(20))then
begin
Debug('Activated Zapper!', False);
Me.Integers[Int_ZappersClicked] := Me.Integers[Int_ZappersClicked] + 1;
Me.Integers[Int_NextZapperCheck] := 30000+Random(10000);
Break;
end;
end;
Me.Integers[Int_NextZapperCheck] := 9000+Random(3000);
ZapperTimer.start;
end;2015-01-09 19:16:11
From: Fitta
procedure handle_Zapper;
var
Objs: TReflectObjectArray;
I: Integer;
T: Timer;
begin
If (ZapperTimer.timeElapsed < Me.Integers[Int_NextZapperCheck])or(Not UseZappers)or(Failed) then
Exit;
T.start;
Objs.Get(ObjGame, 26256, 24);
For I:=0 to High(Objs)do
If (Objs[I].ID = 26256)then
begin
Debug('Found zapper -> Clicking', False);
Me.Integers[Int_Prio_NextPot] := 18;
handle_flickPrayer;
If Reflect.Tiles.DistanceFromTile(Objs[I].Tile) > 5 then
locPlayer.BlindWalkMM(Objs[I].Tile, 3);
handle_flickPrayer;
drink_Potions;
if interactTile(Objs[I].Tile, 'Activate', 'Activate', 5, 5, mouse_Left, 170+Random(20))then
begin
Debug('Activated Zapper!', False);
Me.Integers[Int_ZappersClicked] := Me.Integers[Int_ZappersClicked] + 1;
Me.Integers[Int_NextZapperCheck] := 30000+Random(10000);
Break;
end;
end;
Me.Integers[Int_NextZapperCheck] := 9000+Random(3000);
ZapperTimer.start;
end;
^ works
2015-01-09 19:16:42
From: ineedbot
…
procedure TReflectObjectArray.Get(__Object: TObjType; Obj: Variant; Distance: Integer = 103);_objects.Get(ObjGame, 'Tree' , 20);_objects.GetAll(ObjGame, 20);2015-01-09 19:26:31
program new;
{$DEFINE SMART}
{$i AeroLib/AeroLib.Simba}
{$i AeroLib/Reflection/Reflection.Simba}
function R_Underattack:Boolean;
var _me : TReflectLocalPlayer;
begin
_me.Create;
result := _me.UnderAttack;
end;
begin
initAL;
setupReflection;
while (true) do
writeln(R_Underattack);
end.returnsFalse
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
TrueAnd I'm just bankstanding, clearly not in combat or under attack.
2015-01-09 19:40:09
From: ineedbot
Alright, its working nicely now.
However;returnsprogram new;
{$DEFINE SMART}
{$i AeroLib/AeroLib.Simba}
{$i AeroLib/Reflection/Reflection.Simba}
function R_Underattack:Boolean;
var _me : TReflectLocalPlayer;
begin
_me.Create;
result := _me.UnderAttack;
end;
begin
initAL;
setupReflection;
while (true) do
writeln(R_Underattack);
end.And I'm just bankstanding, clearly not in combat or under attack.False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
False
True
2015-01-09 20:15:40
From: Fitta
if you're looking at when YOU are interacted with, use LocalPlayers -> Interacting.
Pretty sure UnderAttack uses LoopCycle?
EDIT: Also for the love of yourself, only .create once(make it a global).
Read up on the tutorial, a lot has changed/added/deleted/re-named.
It's an amazing include and I've had a really nice time trying this sweetheart out.
2015-01-09 20:22:34
From: ineedbot
Oh ok, i guess the TReflectLocalPlayer.Create must be global, because now its working fine, I wonder why it oscillates when I update TReflectLocalPlayer.Create, anyway, thanks for the help
2015-01-09 21:43:57
2015-01-09 22:51:17
It took: 0ms for (1 * 1) Tiles
It took: 0ms for (2 * 2) Tiles
It took: 0ms for (3 * 3) Tiles
It took: 0ms for (4 * 4) Tiles
It took: 0ms for (5 * 5) Tiles
It took: 0ms for (6 * 6) Tiles
It took: 15ms for (7 * 7) Tiles
It took: 16ms for (8 * 8) Tiles
It took: 16ms for (9 * 9) Tiles
It took: 15ms for (10 * 10) Tiles
It took: 16ms for (11 * 11) Tiles
It took: 15ms for (12 * 12) Tiles
It took: 31ms for (13 * 13) Tiles
It took: 16ms for (14 * 14) Tiles
It took: 15ms for (15 * 15) Tiles
It took: 31ms for (16 * 16) Tiles
It took: 31ms for (17 * 17) Tiles
It took: 32ms for (18 * 18) Tiles
It took: 32ms for (19 * 19) Tiles
It took: 46ms for (20 * 20) Tiles
It took: 47ms for (21 * 21) Tiles
It took: 31ms for (22 * 22) Tiles
It took: 47ms for (23 * 23) Tiles
It took: 63ms for (24 * 24) Tiles
It took: 62ms for (25 * 25) Tiles
It took: 47ms for (26 * 26) Tiles
It took: 79ms for (27 * 27) Tiles
It took: 93ms for (28 * 28) Tiles
It took: 78ms for (29 * 29) Tiles
It took: 78ms for (30 * 30) Tiles
It took: 94ms for (31 * 31) Tiles
It took: 125ms for (32 * 32) Tiles
It took: 109ms for (33 * 33) Tiles
It took: 109ms for (34 * 34) Tiles
It took: 125ms for (35 * 35) Tiles
It took: 156ms for (36 * 36) Tiles
It took: 141ms for (37 * 37) Tiles
It took: 140ms for (38 * 38) Tiles
It took: 156ms for (39 * 39) Tiles
It took: 188ms for (40 * 40) Tiles
It took: 172ms for (41 * 41) Tiles
It took: 172ms for (42 * 42) Tiles
It took: 188ms for (43 * 43) Tiles
It took: 219ms for (44 * 44) Tiles
It took: 219ms for (45 * 45) Tiles
It took: 219ms for (46 * 46) Tiles
It took: 234ms for (47 * 47) Tiles
It took: 250ms for (48 * 48) Tiles
It took: 250ms for (49 * 49) Tiles
It took: 266ms for (50 * 50) Tiles
It took: 297ms for (51 * 51) Tiles
It took: 328ms for (52 * 52) Tiles
It took: 312ms for (53 * 53) Tiles
It took: 312ms for (54 * 54) Tiles
It took: 344ms for (55 * 55) Tiles
It took: 360ms for (56 * 56) Tiles
It took: 344ms for (57 * 57) Tiles
It took: 344ms for (58 * 58) Tiles
It took: 375ms for (59 * 59) Tiles
It took: 422ms for (60 * 60) Tiles
It took: 422ms for (61 * 61) Tiles
It took: 422ms for (62 * 62) Tiles
It took: 437ms for (63 * 63) Tiles
It took: 469ms for (64 * 64) Tiles
It took: 468ms for (65 * 65) Tiles
It took: 485ms for (66 * 66) Tiles
It took: 500ms for (67 * 67) Tiles
It took: 532ms for (68 * 68) Tiles
It took: 547ms for (69 * 69) Tiles
It took: 563ms for (70 * 70) Tiles
It took: 610ms for (71 * 71) Tiles
It took: 609ms for (72 * 72) Tiles
It took: 609ms for (73 * 73) Tiles
It took: 609ms for (74 * 74) Tiles
It took: 657ms for (75 * 75) Tiles
It took: 750ms for (76 * 76) Tiles
It took: 719ms for (77 * 77) Tiles
It took: 703ms for (78 * 78) Tiles
It took: 766ms for (79 * 79) Tiles
It took: 781ms for (80 * 80) Tiles
It took: 781ms for (81 * 81) Tiles
It took: 797ms for (82 * 82) Tiles
It took: 859ms for (83 * 83) Tiles
It took: 875ms for (84 * 84) Tiles
It took: 922ms for (85 * 85) Tiles
It took: 859ms for (86 * 86) Tiles
It took: 906ms for (87 * 87) Tiles
It took: 969ms for (88 * 88) Tiles
It took: 953ms for (89 * 89) Tiles
It took: 969ms for (90 * 90) Tiles
It took: 1031ms for (91 * 91) Tiles
It took: 1094ms for (92 * 92) Tiles
It took: 1078ms for (93 * 93) Tiles
It took: 1078ms for (94 * 94) Tiles
It took: 1140ms for (95 * 95) Tiles
It took: 1203ms for (96 * 96) Tiles
It took: 1219ms for (97 * 97) Tiles
It took: 1203ms for (98 * 98) Tiles
It took: 1250ms for (99 * 99) Tiles
It took: 1282ms for (100 * 100) Tiles
It took: 1297ms for (101 * 101) Tiles
It took: 1281ms for (102 * 102) Tiles
It took: 1313ms for (103 * 103) Tiles
It took: 1360ms for (104 * 104) Tiles
program new;
{$DEFINE SMART}
{$i AeroLib/AeroLib.Simba}
{$i AeroLib/Reflection/Reflection.Simba}
var _me : TReflectObjectArray;
_t : timer;
begin
initAL;
setupReflection;
_t.start;
_me.GetAll(ObjGame, 20);
writeln(_me);
writeln(_t.timeElapsed);
end. result:[Status] [Reflection] Reflection succesfully setup!
[{NAME = Tree Stump, ACTIONS = [null, null, null, null, null], ID = 9471, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3087, Y = 3231}}, {NAME = Millstones, ACTIONS = [null, null, null, null, null], ID = 1778, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3086, Y = 3228}}, {NAME = Tree Stump, ACTIONS = [null, null, null, null, null], ID = 9471, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3088, Y = 3231}}, {NAME = Tree Stump, ACTIONS = [null, null, null, null, null], ID = 9471, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3087, Y = 3232}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11761, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3088, Y = 3228}}, {NAME = Tree Stump, ACTIONS = [null, null, null, null, null], ID = 9471, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3088, Y = 3232}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11761, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3089, Y = 3228}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11761, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3088, Y = 3227}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11761, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3089, Y = 3227}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11755, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3088, Y = 3234}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11755, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3089, Y = 3234}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11759, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3086, Y = 3235}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11759, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3085, Y = 3235}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11755, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3088, Y = 3235}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11755, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3089, Y = 3235}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11759, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3086, Y = 3236}}, {NAME = Rock, ACTIONS = [null, null, null, null, null], ID = 10788, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3080, Y = 3231}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11759, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3085, Y = 3236}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3092, Y = 3232}}, {NAME = Rock, ACTIONS = [null, null, null, null, null], ID = 10788, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3080, Y = 3232}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3092, Y = 3233}}, {NAME = Rock, ACTIONS = [null, null, null, null, null], ID = 10788, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3079, Y = 3231}}, {NAME = Party Balloon, ACTIONS = [Burst, null, null, null, null], ID = 119, HEIGHT = 1, WIDTH = 1, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3085, Y = 3237}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3093, Y = 3232}}, {NAME = Rock, ACTIONS = [null, null, null, null, null], ID = 10788, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3079, Y = 3232}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11763, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3084, Y = 3237}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11763, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3083, Y = 3237}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3093, Y = 3233}}, {NAME = Rock, ACTIONS = [null, null, null, null, null], ID = 10787, HEIGHT = 1, WIDTH = 1, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3079, Y = 3233}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11763, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3084, Y = 3238}}, {NAME = Daisies, ACTIONS = [null, null, null, null, null], ID = 1189, HEIGHT = 1, WIDTH = 1, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3094, Y = 3233}}, {NAME = Willow, ACTIONS = [Chop down, null, null, null, null], ID = 11763, HEIGHT = 2, WIDTH = 2, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3083, Y = 3238}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3092, Y = 3223}}, {NAME = Rock, ACTIONS = [null, null, null, null, null], ID = 10787, HEIGHT = 1, WIDTH = 1, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3077, Y = 3232}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3093, Y = 3223}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10791, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3094, Y = 3224}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3092, Y = 3222}}, {NAME = Rock, ACTIONS = [null, null, null, null, null], ID = 10788, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3078, Y = 3236}}, {NAME = Daisies, ACTIONS = [null, null, null, null, null], ID = 1189, HEIGHT = 1, WIDTH = 1, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3096, Y = 3228}}, {NAME = Daisies, ACTIONS = [null, null, null, null, null], ID = 1189, HEIGHT = 1, WIDTH = 1, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3096, Y = 3233}}, {NAME = Rock, ACTIONS = [null, null, null, null, null], ID = 10788, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3078, Y = 3237}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10791, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3094, Y = 3223}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3093, Y = 3222}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10791, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3095, Y = 3224}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3092, Y = 3221}}, {NAME = Rock, ACTIONS = [null, null, null, null, null], ID = 10788, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3077, Y = 3236}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3094, Y = 3222}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10791, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3095, Y = 3223}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3093, Y = 3221}}, {NAME = Rock, ACTIONS = [null, null, null, null, null], ID = 10788, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3077, Y = 3237}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3092, Y = 3220}}, {NAME = Daisies, ACTIONS = [null, null, null, null, null], ID = 1189, HEIGHT = 1, WIDTH = 1, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3096, Y = 3236}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3094, Y = 3221}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3095, Y = 3222}}, {NAME = Stones, ACTIONS = [null, null, null, null, null], ID = 10793, HEIGHT = 1, WIDTH = 1, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3096, Y = 3223}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3093, Y = 3220}}, {NAME = Boulder, ACTIONS = [null, null, null, null, null], ID = 10790, HEIGHT = 2, WIDTH = 2, WALKABLE = True, OBJECTTYPE = objGame, TILE = {X = 3095, Y = 3221}}, {NAME = Bank Deposit Box, ACTIONS = [Deposit, null, null, null, null], ID = 11747, HEIGHT = 1, WIDTH = 1, WALKABLE = False, OBJECTTYPE = objGame, TILE = {X = 3094, Y = 3240}}]
1313
Successfully executed.2015-01-09 23:23:26
From: ineedbot
…
2015-01-09 23:38:22
From: elfyyy
Hmm, wonder why I didn't notice that earlier :/ Will have a fix in a bit :D
2015-01-10 10:03:33
Abyss Runecrafter V1.045 (1).simba(250:63): Unknown identifier 'client_widgets' at line 251
Abyss Runecrafter V1.045 (1).simba(134:3): Variable 'C' never used at line 133
Abyss Runecrafter V1.045 (1).simba(134:3): Variable 'T' never used at line 133
Abyss Runecrafter V1.045 (1).simba(134:3): Variable 'I' never used at line 133
Compiling failed.
2015-01-10 10:08:08
From: alexes
I'm having trouble with the pascal version.
After update I'm getting these errors on Abyss runecrafter v1.045, which worked fine before the update.Abyss Runecrafter V1.045 (1).simba(250:63): Unknown identifier 'client_widgets' at line 251
Abyss Runecrafter V1.045 (1).simba(134:3): Variable 'C' never used at line 133
Abyss Runecrafter V1.045 (1).simba(134:3): Variable 'T' never used at line 133
Abyss Runecrafter V1.045 (1).simba(134:3): Variable 'I' never used at line 133
Compiling failed.
2015-01-10 10:28:59
From: elfyyy
Please re download the include, replacing the version you had..
2015-01-10 10:35:53
From: alexes
Already did, also reinstalled simba and everything. And I keep getting this error.
2015-01-10 10:41:16
From: elfyyy
You're doing something wrong, maybe not renaming the new version correctly or something. As many people have already done it and it's working, also I just double checked myself and dl'd the googlecode version and it works fine..
2015-01-10 12:32:25
From: alexes
Okay, thank you. I will recheck what i could have done wrong.
2015-01-10 19:24:33
From: Fitta
If you can't figure it out, shoot me a pm and I'll help you @ teamviewer
2015-01-11 17:52:50
2015-01-14 09:19:10
From: ineedbot
.IsAnimating gives a access violation error, on .GetAnimation.
2015-01-14 18:37:55
2015-01-14 21:41:46
From: levunit
Woo! A new dev! Welcome ^^.
Also, I was doing some testing around, and found that MyPlayer.WalkPathMM doesnt work. Its not the tiles I'm using because I cycled through them with MyPlayer.WalkToTileMM and it worked fine. Just a heads up ^^
2015-01-15 03:39:13
2015-01-15 08:06:08
From: Botbotpotpot
Hi, I would like to learn a bit on using reflection to write my own scripts. Are there any tutorials that focus specifically in reflection?
2015-01-15 08:54:40
215 Classes Found
Beginning Deob..
Removed 2595 Dummy Methods (1847.63 ms)
Reordered 2385 Multiplier Instructions (147.86 ms)
Reordered 2072 Arithmetic Statements (1426.41 ms)
Removed 4275 Exceptions (1198.06 ms)
Removed 987 Opaque Predicates (294.75 ms)
Removed 540 Dummy Parameters (485.34 ms)
Total Deob took 5400.06 ms
Deob Finished..
Starting Analysers..
Analysers Finished..
|>Node = gs -> Extends java/lang/Object
^ UID................gs.eb -> J
^ Next...............gs.er -> Lgs;
^ Prev...............gs.ea -> Lgs;
Identified 3 / 3 Fields
|>Cacheable = ga -> Extends gs
^ Next...............ga.ct -> Lga;
^ Prev...............ga.cm -> Lga;
Identified 2 / 2 Fields
|>Renderable = cj -> Extends ga
^ ModelHeight........cj.cn * 263061173 -> I
Identified 1 / 1 Fields
|>Animable = k -> Extends cj
|>Model = ck -> Extends cj
|>AnimationSequence = ar -> Extends ga
|>NpcDefinition = as -> Extends ga
^ Actions............as.o -> [Ljava/lang/String;
^ Name...............as.p -> Ljava/lang/String;
^ ID.................as.h * 1088210017 -> I
^ CombatLevel........as.d * 1673662501 -> I
Identified 4 / 4 Fields
|>LinkedList = fr -> Extends java/lang/Object
^ Head...............fr.x -> Lgs;
^ Current............fr.v -> Lgs;
Identified 2 / 2 Fields
|>Actor = ab -> Extends cj
^ Animation..........ab.bk * 1388441449 -> I
^ QueueX.............ab.bm -> [I
^ QueueY.............ab.bi -> [I
^ WorldX.............ab.o * -127655233 -> I
^ WorldY.............ab.z * 1441948399 -> I
^ SpokenText.........ab.ab -> Ljava/lang/String;
^ CombatCycle........ab.av * 1519043073 -> I
^ Health.............ab.al * 1760173349 -> I
^ MaxHealth..........ab.af * -1082016153 -> I
^ Interactingindex...ab.aj * -860894253 -> I
Identified 10 / 10 Fields
|>Npc = am -> Extends ab
^ Definition.........am.x -> Las;
Identified 1 / 1 Fields
|>ObjectDefinition = ah -> Extends ga
^ Actions............ah.ac -> [Ljava/lang/String;
^ Name...............ah.q -> Ljava/lang/String;
Identified 2 / 2 Fields
|>Buffer = dm -> Extends gs
|>Widget = et -> Extends gs
^ Children...........et.ds -> [Let;
^ InvIDs.............et.dx -> [I
^ StackSizes.........et.de -> [I
^ ItemAmount.........et.dr * 1109214045 -> I
^ ItemID.............et.df * 454191437 -> I
^ WidgetID...........et.b * -1884642563 -> I
^ Name...............et.bu -> Ljava/lang/String;
^ GetText............et.bj -> Ljava/lang/String;
^ IsHidden...........et.y -> Z
^ AbsoluteX..........et.r * -230957739 -> I
^ AbsoluteY..........et.x * 523444805 -> I
^ RelativeX..........et.f * -545121905 -> I
^ RelativeY..........et.t * 1803355887 -> I
^ Width..............et.o * -538762125 -> I
^ Height.............et.z * 1989741601 -> I
^ ParentID...........et.d * -450458375 -> I
^ ScrollX............et.a * 830204599 -> I
^ ScrollY............et.n * -628261171 -> I
^ BoundsIndex........et.dn * -1657773883 -> I
Identified 19 / 19 Fields
|>WidgetNode = e -> Extends gs
^ ID.................e.x * 35736987 -> I
Identified 1 / 1 Fields
|>HashTable = fd -> Extends java/lang/Object
^ Buckets............fd.v -> [Lgs;
^ Size...............fd.x -> I
Identified 2 / 2 Fields
|>GameShell = eb -> Extends java/applet/Applet
|>Client = client -> Extends eb
^ LoopCycle..........client.r * 1601901809 -> I
^ Region.............ap.du -> Lcq;
^ Plane..............dp.hf * 2084826697 -> I
^ MenuCount..........client.in * -918571417 -> I
^ MenuWidth..........fa.iu * -1775861983 -> I
^ MenuHeight.........by.ik * -2033507929 -> I
^ MenuOptions........client.ia -> [Ljava/lang/String;
^ MenuActions........client.ij -> [Ljava/lang/String;
^ IsMenuOpen.........client.hc -> Z
^ MenuX..............cv.hp * -1340196463 -> I
^ MenuY..............al.hr * 1643010459 -> I
^ BaseX..............f.ck * -2042408279 -> I
^ BaseY..............af.cx * -357380903 -> I
^ Widgets............et.v -> [[Let;
^ LocalPlayer........k.hu -> Lm;
^ LocalPlayers.......client.ge -> [Lm;
^ TileSettings.......p.v -> [[[B
^ TileHeights........p.x -> [[[I
^ LocalNpcs..........client.bm -> [Lam;
^ NpcIndices.........client.bc -> [I
^ Sine...............cf.am -> [I
^ Cosine.............cf.au -> [I
^ CameraPitch........u.ft * -155365477 -> I
^ CameraYaw..........et.fy * 1083245601 -> I
^ CameraX............eb.fc * -1123644797 -> I
^ CameraY............cb.fq * 1664431117 -> I
^ CameraZ............ah.fz * -1136825067 -> I
^ GroundItems........client.hs -> [[[Lfr;
^ GameSettings.......fx.m -> [I
^ MapScale...........client.fe * -44176843 -> I
^ MapAngle...........client.dy * -1236362935 -> I
^ MapOffset..........client.dn * -1344761283 -> I
^ CurrentLevels......client.hz -> [I
^ RealLevels.........client.hw -> [I
^ Experiences........client.ht -> [I
^ Energy.............client.jw * 1072163223 -> I
^ Weight.............client.jm * -1336289845 -> I
^ Rights.............client.jc * 1705169487 -> I
^ CurrentWorld.......client.h * -1552976471 -> I
^ LoginState.........client.s * 672893323 -> I
^ PlayerIndex........client.hm * -1028529055 -> I
^ WidgetPositionX....client.lg -> [I
^ WidgetPositionY....client.ly -> [I
^ WidgetWidths.......client.li -> [I
^ WidgetHeights......client.lx -> [I
^ WidgetNodeCache....client.jy -> Lfd;
Identified 46 / 46 Fields
|>Region = cq -> Extends java/lang/Object
^ SceneTiles.........cq.p -> [[[Lcb;
Identified 1 / 1 Fields
|>BoundaryObject = cn -> Extends java/lang/Object
^ ID.................cn.i * -1221649549 -> I
Identified 1 / 1 Fields
|>GameObject = ce -> Extends java/lang/Object
^ ID.................ce.b * -1354640943 -> I
Identified 1 / 1 Fields
|>GroundDecoration = cw -> Extends java/lang/Object
^ ID.................cw.p * -2092519493 -> I
Identified 1 / 1 Fields
|>WallDecoration = cp -> Extends java/lang/Object
^ ID.................cp.l * 1581896175 -> I
Identified 1 / 1 Fields
|>SceneTile = cb -> Extends gs
^ GameObject.........cb.q -> [Lce;
^ GroundDecoration...cb.u -> Lcw;
^ WallDecoration.....cb.i -> Lcp;
^ BoundaryObject.....cb.j -> Lcn;
Identified 4 / 4 Fields
|>Player = m -> Extends ab
^ Definition.........m.v -> Lfq;
^ Name...............m.x -> Ljava/lang/String;
Identified 2 / 2 Fields
|>Item = n -> Extends cj
^ ID.................n.x * -1429811179 -> I
^ StackSizes.........n.v * 823893833 -> I
Identified 2 / 2 Fields
Identified 25 / 25 Classes..
Identified 106 / 106 Fields..
Process finished with exit code 0
2015-01-15 14:18:35
2015-01-16 16:49:23
2015-01-18 13:24:33