PDA

View Full Version : [OGL] interception v0.1



Pages : [1] 2

silentwolf
01-23-2010, 10:27 PM
Presenting: interception v0.1a
(Suggestions for a cooler name welcome. As opposed to reflection, which reflects RS client variables, interception intercepts data being sent to the graphics card)

This is some very rough proof of concept of code. This should not be used in a bot in it's current form.

Feedback wanted! Tell me if it crashes, breaks or doesn't work as expected. Tell me what (basic) features you'd like to see implemented.

Usage:

1. Set your gfx to the following: (After chaging these settings, you need to close down RS and start it again)
http://i49.tinypic.com/24v1rp2.png
Fog needs to be on! This is confirmed.

2. Install the plugins: (do this once)

Place ogl_plugin2.dll in your SCAR plugins folder.
Place opengl32.dll in "C:\Program Files\Java\jre6\bin" or equivalent.


3. Then, in this exact order:


Close down SCAR and any instance of RS you have open (i.e. your browser).
Start up RS (normal client, not SMART, but in IE/firefox) in HD mode. Wait for login screen to appear.
Start up SCAR.
Create a SCAR script, e.g. below.
Run the script! If you try and start SCAR before RS has fully loaded it will probably crash out. This will be fixed later on.


Example SCAR script. Moves the mouse to a banker in East Varrock. Will probably work for other bankers too. IDs of each model is the number that floats above in game.

program New;
{.include srl/srl.scar}
var
x,y: integer;
begin
SetupSRL;
if(FindModelByID(x,y, 588752808)) then
begin
MMouse(x, y, 0, 0);
Writeln('x=' + IntToStr(x) + ', y=' + IntToStr(y));
end else
begin
Writeln('Model not found.');
end;
end.


FindModelByID prototype:
function FindModelByID(var x, y: integer; id: integer): boolean;
Returns true if model with ID specified is found and false if not found. If found, x,y coords placed in x and y. Else contents of x,y should be ignored.


Finding IDs of models:

Press numpad 5 to enable overlays
Press numpad 7, 8, 9 and nine to choose different strides. Don't worry what a stride is, this just breaks the models up into groups so it's less cluttered on screen.
If the ID of the model you want isn't displayed, try a different stride.


Here's an example:
http://i45.tinypic.com/27zf4g5.png
I pressed 5 to enable overlays, then pressed numpad 9 to find the ID of the bank booth (35240154) under stride 24.


Warning: The drawing of overlays could, at least in the future, be detectable. While I doubt this would currently be detected, especially at this time, it will be good practice to only draw overlays when you're on a character you don't mind getting banned!



Bugs/features to come:

Returning coords of the centre of the model, not the first vertex
Running multiple clients at once
Finding ground and world models
Function to return array of all models found, instead of just one
Make it work without needing fog on
Bringing up the world map and closing it breaks interception


Testers so far:
Working:
nielsie95
marpis
The Man
Infantry001
Iroki
Lancelot074
r!ch!e
mormonman
J_Pizzle
Home
bbri06
Runescape Pro
The Claw

Not working:
TRiLeZ
Smarter Child
Timer - SCAR plugin - function not found



Have fun :)

marpis
01-23-2010, 10:32 PM
Awesome! :) Gotta test it asap!
I assume it works with SMART too?
Is figuring the IDs complicated?

E: Unknown identifier 'FindModelByID'
both dlls are in the plugins folder.

silentwolf
01-23-2010, 10:34 PM
I haven't tried it with SMART, but I assume it will. IDs are simple :)

YoHoJo
01-23-2010, 10:35 PM
Sweet and awesome!
Any way we ourselves can find IDs of npcs/objects? Like have numbers displayed on top of objects? Like, how did you find that banker ID, how can we find our own?
Thanks so much, cant wait woo woo.

Edit: MoveMoveSmooth is 'detectable' not sure if just using it once will get you banned, but better to .include srl.scar and use MMouse instead

silentwolf
01-23-2010, 10:39 PM
Any way we ourselves can find IDs of npcs/objects? Like have numbers displayed on top of objects? Like, how did you find that banker ID, how can we find our own?

Here's what RS looks like when you log in:
http://i47.tinypic.com/2prg3uo.png

Hope this is self explanatory :)

The overlay will be able to be toggled on and off in a future version.

marpis
01-23-2010, 10:39 PM
Sweet and awesome!
Any way we ourselves can find IDs of npcs/objects? Like have numbers displayed on top of objects? Like, how did you find that banker ID, how can we find our own?
Thanks so much, cant wait woo woo.

Edit: MoveMoveSmooth is 'detectable' not sure if just using it once will get you banned, but better to .include srl.scar and use MMouse instead

Yea, replace the testscript with this.

E: Oh, I read the instructions now :rolleyes: I'mma try it again.


program New;
{.include srl/srl.scar}
var
x,y: integer;
begin
FindModelByID(x,y, 588752808);
MMouse(x, y, 0, 0);
Writeln('x=' + IntToStr(x) + ', y=' + IntToStr(y));
end.

Rick
01-23-2010, 10:40 PM
Amazing :)
How can we find our own ID's ?
Edit: Should refresh page before posting :/

Kyle Undefined
01-23-2010, 10:42 PM
Very nice! I'll test when I get a chance :)

~Camo

YoHoJo
01-23-2010, 10:42 PM
Amazing :)
How can we find our own ID's ?
Edit: Should refresh page before posting :/
Read 2? posts up.
Apparently when you login, all IDs are displayed on top of the NPC's heads.

SilentWolf, so bla bal talk about Jagex being able to see whats on our screen, is the ID 'painting' done on a layer above the actual runescape client?

silentwolf
01-23-2010, 10:42 PM
E: Unknown identifier 'FindModelByID'
both dlls are in the plugins folder.

Are you using the SVN SCAR pre release version?

silentwolf
01-23-2010, 10:44 PM
SilentWolf, so bla bal talk about Jagex being able to see whats on our screen, is the ID 'painting' done on a layer above the actual runescape client?

Commands are effectively injected after RS has sent information to the GFX card. Jagex couldn't detect this. But I believe it would be possible to read back what has been drawn (i.e. similar to taking a screenshot).

marpis
01-23-2010, 10:46 PM
Are you using the SVN SCAR pre release version?

Yeah, v. 2.32. Although the error suggests that the name of the function is different in your plugin, or not correctly exported.

I also moved the other plugin to Java folder, still doesn't work.

silentwolf
01-23-2010, 10:47 PM
Yeah, v. 2.32. Although the error suggests that the name of the function is different in your plugin, or not correctly exported.

I also moved the other plugin to Java folder, still doesn't work.

v3.23 :)

This is a little odd. What version of windows do you have?

marpis
01-23-2010, 10:48 PM
v3.23 :)

This is a little odd. What version of windows do you have?

Vista. Are you sure the ogl_plugin2.dll has a function "FindModelByID"? :o
And I also don't see anything drawn to my screen (the IDs)

Simtoon
01-23-2010, 10:50 PM
Post Source?

silentwolf
01-23-2010, 10:51 PM
32bit? My SCAR plugin is massively hacky, but works for me. I'm not quite sure what to suggest at the moment. Does anyone else have it working?

Out of interest, have you placed opengl32.dll in the java bin folder? Do overlays get drawn correctly?



Post Source?
Later. It's currently too buggy and messy to release, especially if people who read it aren't familiar with OGL hacks:o

marpis
01-23-2010, 10:53 PM
32bit? My SCAR plugin is massively hacky, but works for me. I'm not quite sure what to suggest at the moment. Does anyone else have it working?

Out of interest, have you placed opengl32.dll in the java bin folder? Do overlays get drawn correctly?



Later. It's currently too buggy and messy to release, especially if people who read it aren't familiar with OGL hacks:o

Yea, the opengl32.dll is in the Java/jre/bin/ or something like that.
PM me the sauce if you don't want to publish it yet, I take a quick look to it if I find something wrong.

YoHoJo
01-23-2010, 10:56 PM
This will still work on 64bit systems, correct?

silentwolf
01-23-2010, 11:04 PM
I see no reason for it not to work in 64bit. SCAR is 32bit 'emulated' right?

marpis, this is the code I'm using for the plugin: http://www.villavu.com/forum/showpost.php?p=677648&postcount=138

Minus a bit to interface with the opengl plugin, which is irrelevant to the error your getting.

Has anyone actually got it working yet?

MylesMadness
01-23-2010, 11:06 PM
I see no reason for it not to work in 64bit. SCAR is 32bit 'emulated' right?

marpis, this is the code I'm using for the plugin: http://www.villavu.com/forum/showpost.php?p=677648&postcount=138

Minus a bit to interface with the opengl plugin, which is irrelevant to the error your getting.

Has anyone actually got it working yet?You'll learn fast that little testing happens in members :P. We're quite the lazy group

Zyt3x
01-23-2010, 11:25 PM
You'll learn fast that little testing happens in members :P. We're quite the lazy groupDon't say that :p
This is definitively something I'll test, even though I rarely do :redface:

YoHoJo
01-23-2010, 11:32 PM
Set everything up. Im getting
Unknown identifier 'FindModelByID'
Meaning something's up with the plugin (for scar) most likely.

Zyt3x
01-23-2010, 11:46 PM
Yeah, I get the error too :)
I'll test when I wake up in ~7 hours

Wanted
01-24-2010, 02:34 AM
This looks very good, glad you are a man of your word. Will take a look at this tomorrow :)

Awkwardsaw
01-24-2010, 02:39 AM
does the have to be used in HD? :(

Wanted
01-24-2010, 02:44 AM
does the have to be used in HD? :(

Yes, unfortunately, only HD has the gl or whatever.

Infantry001
01-24-2010, 03:41 AM
Yeah, unknown identifier 'FindModelByID' error.

And overlays do not get drawn either.

Can't wait until this works ;)

YoHoJo
01-24-2010, 04:22 AM
does the have to be used in HD? :(
Unfortunately yes it does.

Also yeah guys, most likely there is a problem with the plugin right now, just wait a bit until he gets around to fixing it. Or lets us know what we are doing wrong. =)

lordsaturn
01-24-2010, 08:23 AM
Sauce sauce sauce

(mebe higher up)

silentwolf
01-24-2010, 10:53 AM
OK, I cocked up last night and gave you DLLs over a week old. Needless to say they were completely useless.

I've uploaded the current versions of both programs, so please redownload the plugins and try again. Hopefully it will work this time :)

Zyt3x
01-24-2010, 11:13 AM
Yay! Thank you silentowlf :)

EDIT1: I get an error: "Could not create shared memory!"...
EDIT2: Waait.. standard detail.. lol
EDIT3: When I click High Detail, my java crashes...

Sabzi
01-24-2010, 11:44 AM
Okay, I get in-game in HD. Ids shows up, that's okay. I'm in ak bank. I tried it with both ids(seems there are two type of bankers there) but neither of them worked. When I run the test script first the game laggs like hell then nothing happens. The mouse just remains at the start button and I can't even move it. I think I used the correct ids but the 6 like numbers are weird. Tried both with client selected and not-selected.

silentwolf
01-24-2010, 11:48 AM
Okay, I get in-game in HD. Ids shows up, that's okay. I'm in ak bank. I tried it with both ids(seems there are two type of bankers there) but neither of them worked. When I run the test script first the game laggs like hell then nothing happens. The mouse just remains at the start button and I can't even move it. I think I used the correct ids but the 6 like numbers are weird. Tried both with client selected and not-selected.

Try this for me:

1. Close everything down - scar and RS
2. Start up RS in firefox/ie.
3. Select high detail.
4. Wait for RS to load.
5. Start up scar.
6. Load and run script.

silentwolf
01-24-2010, 11:51 AM
Yay! Thank you silentowlf :)

EDIT1: I get an error: "Could not create shared memory!"...
EDIT2: Waait.. standard detail.. lol
EDIT3: When I click High Detail, my java crashes...

Are you running Vista? Please try starting RS with administrative privileges. I'm on XP and I've just realised the way I'm transferring data from opengll32.dll to ogl_plugin requires admin privileges. I'll see if I can find a better solution.

nielsie95
01-24-2010, 11:58 AM
Try this for me:

1. Close everything down - scar and RS
2. Start up RS in firefox/ie.
3. Select high detail.
4. Wait for RS to load.
5. Start up scar.
6. Load and run script.

I did it this way and it works :) Pretty cool!
Does this mean you can "hook" only 1 instance of RS?

silentwolf
01-24-2010, 12:02 PM
Should be able to hook multiple instances in the future, but at the moment, no.

Are you running XP?

nielsie95
01-24-2010, 12:06 PM
Vista 32bit, with Admin privileges.

silentwolf
01-24-2010, 12:09 PM
Vista 32bit, with Admin privileges.

How are you achieving admin privileges? Do you get any warnings coming up?

Dynamite
01-24-2010, 12:13 PM
Will test this ASAP!
Anyway we can find out RSTiles? for walking.

BTW Silentwolf, got msn? PM me it :)

marpis
01-24-2010, 12:13 PM
Whenever I set my RS to HD, the RS client just goes black :(


Will test this ASAP!
Anyway we can find out RSTiles? for walking.

Nope. This doesn't have anything to do with the Javaside of RS.

Floor66
01-24-2010, 12:15 PM
Will test this ASAP!
Anyway we can find out RSTiles? for walking.

BTW Silentwolf, got msn? PM me it :)

Possibly... Maybe whenever you click to walk in HD something gets sent to your GFX card that contains certain coordinates? :S

silentwolf
01-24-2010, 12:18 PM
Whenever I set my RS to HD, the RS client just goes black :(

You're in Vista right? You somehow need to give RS admin privileges for this to work. I will try and fix this soon.

Please do the following though:
Create the folder "C:\rs" <- exactly this
Hopefully RS client wont crash once you do this and an error log should be created in that folder. Let me know what the error is to confirm your problem :)


Possibly... Maybe whenever you click to walk in HD something gets sent to your GFX card that contains certain coordinates? :S
Nope. But I think I could extract an un-rotated, un-modified (they mess with the colours right?) map. I could also find the map rotation. You could then use FindBitmap or whatever to find where you want to click. There probably will never be a easy system such as tiling.

Floor66
01-24-2010, 12:22 PM
I did exactly what you said; except for that I added SetupSRL, ActivateClient and a small wait, but it just moves the mouse to 0,0
:S

I'm on windows media center sp3 32bit, ati radeon hd4890 gfx card

marpis
01-24-2010, 12:29 PM
Could not create file mapping object (5)

in C:/rs/opengl32.txt

silentwolf
01-24-2010, 12:34 PM
in C:/rs/opengl32.txt

Thanks, that's the vista privileges thing I was talking about. Please download the updated plugin I've just uploaded, overwrite the two old dlls and see if it works now :)

Also, did RS crash once you'd created that folder? Or did you get ingame with the overlays drawn?

mixster
01-24-2010, 12:54 PM
It's pointless not to post sauce because it's "messy" or the like since no one will bother to read it - it's just there to satisfy the paranoia that says you are an evil genius who put keyloggers and viruses and trojans in there :)

nielsie95
01-24-2010, 01:01 PM
It's pointless not to post sauce because it's "messy" or the like since no one will bother to read it - it's just there to satisfy the paranoia that says you are an evil genius who put keyloggers and viruses and trojans in there :)

But I don't think any one here is going to recompile the source, so he might just as well be the evil genius ;)

silentwolf
01-24-2010, 01:06 PM
It's pointless not to post sauce because it's "messy" or the like since no one will bother to read it - it's just there to satisfy the paranoia that says you are an evil genius who put keyloggers and viruses and trojans in there :)

But then what's the point? If people wont recompile, then I could provide the source and a binary with keylogger attached :duh: If you're suspicious, open up the dlls in IDA (or even notepad) and you will find nothing. I actually find it a little insulting that someone would think I would go to the trouble of making this (20+ hours) just to steal a few kids RS accounts. Also, as I said in the first post, use this on a throw away account you don't care about.

marpis
01-24-2010, 01:17 PM
Wow, it works! :)
And I see the IDs too!

Floor66
01-24-2010, 01:19 PM
I did exactly what you said; except for that I added SetupSRL, ActivateClient and a small wait, but it just moves the mouse to 0,0
:S

I'm on windows media center sp3 32bit, ati radeon hd4890 gfx card

Please read this, silentwolf

silentwolf
01-24-2010, 01:23 PM
Please read this, silentwolf

Have you tried the new version, with steps:

1. Close everything down - scar and RS
2. Start up RS in firefox/ie.
3. Select high detail.
4. Wait for RS to load.
5. Start up scar.
6. Load and run script.

?



Wow, it works! :)
And I see the IDs too!

Good news :)

Floor66
01-24-2010, 01:25 PM
yeah, latest one (the one you made for marpis I guess?) and these steps exactly
do i need a seperate FireFox window or can I just make a new tab?

silentwolf
01-24-2010, 01:27 PM
What error are you getting? Black screen when you load RS?

Floor66
01-24-2010, 01:28 PM
no errors, the script just outputs x=0, y=0 and moves the mouse there.

silentwolf
01-24-2010, 01:33 PM
Is the ID you are searching for on the screen?

I just tried the suggested SRL script (with the undetectable mouse moving routine) and it didn't work:


program New;
{.include srl/srl.scar}
var
x,y: integer;
begin
FindModelByID(x,y, 588752808);
MMouse(x, y, 0, 0);
Writeln('x=' + IntToStr(x) + ', y=' + IntToStr(y));
end.

My quick script does though:

program New;
var
x,y: integer;
begin
FindModelByID(x,y, 588752808);
MoveMouseSmooth(x,y);
Writeln('x=' + IntToStr(x) + ', y=' + IntToStr(y));
end.


Not sure why. MMouse(x, y, 0, 0) doesn't seem to be working... I don't think this is to do with my program though.

Floor66
01-24-2010, 01:39 PM
with either scripts, same outcome (0,0)
i'm in varrock east bank, no IDs on my screen, using the ID that is in the script in 1st post

with/without SRL shouldn't matter tbh

silentwolf
01-24-2010, 01:40 PM
If ID's aren't been drawn, then you probably haven't put opengl32.dll in the right folder. Where have you put it?

Floor66
01-24-2010, 01:41 PM
c:\program files\java\jre6\bin

silentwolf
01-24-2010, 01:42 PM
And you're running the HD client? Really odd.

Floor66
01-24-2010, 01:44 PM
yeah, tried running HD fixed and resized
i'll restart my pc :p see what that does

silentwolf
01-24-2010, 01:48 PM
Arghh, I've managed to break it for me too. It's to do with the details settings. Not sure which are the correct ones now after I changed them all :)

OK, set them to the following and close down your browser and start RS again:
http://i49.tinypic.com/24v1rp2.png

Floor66
01-24-2010, 01:50 PM
oh crap :p
well restarting didn't work
i'll fiddle around with settings then

edit:
aarrgh i set them exactly the same as yours, tried in FF and Chrome, none worked ;'(

mixster
01-24-2010, 01:57 PM
But I don't think any one here is going to recompile the source, so he might just as well be the evil genius ;)

As I said, just to put paranoid minds to rest.


But then what's the point? If people wont recompile, then I could provide the source and a binary with keylogger attached :duh: If you're suspicious, open up the dlls in IDA (or even notepad) and you will find nothing. I actually find it a little insulting that someone would think I would go to the trouble of making this (20+ hours) just to steal a few kids RS accounts. Also, as I said in the first post, use this on a throw away account you don't care about.

If you wanted to get into details, if this took off then there could be hundreds of members using it, some with very high leveled accounts that could be sold on for a bit of profit and most certainly some with parents who would use the same computer, meaning that by infecting computers using just one dll, you could gain access to bank accounts, Facebook accounts, email accounts etc. Even just 10 bank accounts from which you could withdraw a few hundred pounds/dollars would give you quite a large lump of cash for a measly 20+ hours of work.

Sure it's unlikely that you would, but it's possible and if anyone did fear enough to think that you may do that, it would be nice if they could be confident that they can compile a version that doesn't.

I'm also a little surprised at how offended you got. You were even promising sharing sauce and I assumed that would be when you released a working version of some kind, since that would be a logical time to share. Please, do forgive me for thinking that you not sharing sauce code (after promising you would and after people asking for it) because it's "messy".

silentwolf
01-24-2010, 02:03 PM
I will share the code when it's ready and in a state for people to learn from it, e.g. commented and organised in a logical manner. Releasing the code now serves no purpose but to confuse people, especially when it is still clearly broken for some people.

This will be well before it takes off, if it does.

Wizzup?
01-24-2010, 02:03 PM
Is the ID you are searching for on the screen?

I just tried the suggested SRL script (with the undetectable mouse moving routine) and it didn't work:


program New;
{.include srl/srl.scar}
var
x,y: integer;
begin
FindModelByID(x,y, 588752808);
MMouse(x, y, 0, 0);
Writeln('x=' + IntToStr(x) + ', y=' + IntToStr(y));
end.

Not sure why. MMouse(x, y, 0, 0) doesn't seem to be working... I don't think this is to do with my program though.

You don't call SetupSRL;

silentwolf
01-24-2010, 02:04 PM
Ah :)

Fixed.

Floor66
01-24-2010, 02:06 PM
so.. it works for you now? still not for me :(

silentwolf
01-24-2010, 02:08 PM
so.. it works for you now? still not for me :(

When you try and run the script after you've started RS, you don't get any errors?

I wonder if you fairly high end gfx card has something to do with it.

Could people that have tested it send me a PM so I can make a list and who have it working/not working?

Floor66
01-24-2010, 02:09 PM
nope, no errors. i could test it on my win7 box

Dynamite
01-24-2010, 02:11 PM
program New;
{.include srl/srl.scar}
var
x,y: integer;
begin
FindModelByID(x,y, 2308283961);
MouseSpeed := 15
Mouse(x,y,5,5,true);
Writeln('x=' + IntToStr(x) + ', y=' + IntToStr(y));
end.

x=275, y=116
Successfully executed
That moves mouse and clicks perfectly. (Tut Island guy)
AMAZING!

silentwolf
01-24-2010, 02:14 PM
nope, no errors. i could test it on my win7 box

Yeah, please give it a go :)

Dynamite
01-24-2010, 02:15 PM
Silentwolf, do you need me to test anything else?
Also, msn?

silentwolf
01-24-2010, 02:17 PM
You've pretty much tested everything I have to offer at the moment :)

You could try running it on another computer with a different setup if you feel like it.

My current plan is to make sure this actually works for everyone before making any new features.

Floor66
01-24-2010, 02:17 PM
my win7 box was unable to run HD (couldn't switch over to it) :p
still clueless >.>

Dynamite
01-24-2010, 02:18 PM
Ok, well just say when you do :D
BTW, I guess you dont wanna talk on msn then? <>.<>

silentwolf
01-24-2010, 02:24 PM
Well I'm just about to leave for the library actually :p

Dynamite
01-24-2010, 02:25 PM
Well I'm just about to leave for the library actually :p

Still, we can talk later, I wanna get to know the genius.

n3ss3s
01-24-2010, 02:33 PM
This is a nice solution for a Prison Pete solver tbh :)

Iroki
01-24-2010, 05:19 PM
Silentwolf, keep up the good work, it works for me on scar 3.22 very good :)
But, i know that it is first release of your ( i think that i can say ) method of finding NPCs etc.. , there are some shortcomings :P
~ function FindNPCbyID(..) finds npc very well but not always the closest npc :p, you should make somethink like list of all visible npcs and return position of the closest
~ it sometimes finds npc unvisible on MS, hidden behind MI or MC :)
~ if it doesnt find npc it returns previously found coords of npc :P

Don't be angry its only positive criticism :P And please post source, I don't suspect you that you want to steel passes into accounts, but everyone of us want to be up to date what are you doing, its only because of that :P

Nice work.

~~iroki

Lancelot074
01-24-2010, 05:43 PM
Just tried it, works nicely. Great job, keep up the good work.

HyperSecret
01-24-2010, 06:58 PM
Silentwolf, keep up the good work, it works for me on scar 3.22 very good :)
But, i know that it is first release of your ( i think that i can say ) method of finding NPCs etc.. , there are some shortcomings :P
~ function FindNPCbyID(..) finds npc very well but not always the closest npc :p, you should make somethink like list of all visible npcs and return position of the closest
~ it sometimes finds npc unvisible on MS, hidden behind MI or MC :)
~ if it doesnt find npc it returns previously found coords of npc :P

Don't be angry its only positive criticism :P And please post source, I don't suspect you that you want to steel passes into accounts, but everyone of us want to be up to date what are you doing, its only because of that :P

Nice work.

~~iroki

Well all of that can be coded outside of his plugin. You can easily make a TPA of were the IDs are found, then sort them that way. He just needs to find the IDs and that really is all to be concerned with.

Infantry001
01-24-2010, 07:22 PM
Well all of that can be coded outside of his plugin. You can easily make a TPA of were the IDs are found, then sort them that way. He just needs to find the IDs and that really is all to be concerned with.

Not entirely true - silentwolf would have to make it so that his plugin exports the location of all models found. Then, we could make a SCAR function that will sort out the closest NPC.

It works!

I am able to see the overlays, the test script finds the correct NPC, etc.

My settings are all on the highest settings possible, and it still works, so... =)

All of Iroki's comments also apply to my situation - however, the function also finds NPCs outside of the runescape window entirely.

Great job! This looks extremely promising =)

One question - I see two IDs for nearly every NPC. Is this normal?

silentwolf
01-24-2010, 08:05 PM
Not entirely true - silentwolf would have to make it so that his plugin exports the location of all models found. Then, we could make a SCAR function that will sort out the closest NPC.

Yes, I will make a function return an array will all models of the same ID.


One question - I see two IDs for nearly every NPC. Is this normal?

Edit: this is the shadow being drawn.


~ it sometimes finds npc unvisible on MS, hidden behind MI or MC
MI, MC? Hidden objects aren't really a massive problem - real players usually know if an object is hidden behind something anyway... e.g. they saw it move there, or know its always located there. If it's really needed, I could make it only return visible objects, but I don't think it's really needed.


~ if it doesnt find npc it returns previously found coords of npc :P
I've updated the front page with how the function works. It returns false if an id is not found.

Floor66
01-24-2010, 08:19 PM
gahh still not working for me :'(

silentwolf
01-24-2010, 08:51 PM
You definitely have fog off?

Has anyone else got it working with an ATI gfx card?

TRiLeZ
01-24-2010, 08:55 PM
It's not working for me...
I have an Intel integrated graphics card.

Rick
01-24-2010, 09:04 PM
Working for me :) Great work.

Dynamite
01-24-2010, 09:05 PM
Trilez, what browser?

senrath
01-24-2010, 09:08 PM
MI, MC? Hidden objects aren't really a massive problem - real players usually know if an object is hidden behind something anyway... e.g. they saw it move there, or know its always located there. If it's really needed, I could make it only return visible objects, but I don't think it's really needed.


I think he means the chat box and the inventory. Things that are just offscreen, where they can't actually be clicked.

silentwolf
01-24-2010, 09:29 PM
I think he means the chat box and the inventory. Things that are just offscreen, where they can't actually be clicked.

Ah right, so some simple bounds checking would fix this.


It's not working for me...
I have an Intel integrated graphics card.

What are your symptoms? Does HD even load without interception?

tls
01-24-2010, 09:51 PM
Works with Google Chrome. Its very fast :D
I am excited to see the sauce!

Edit: The onscreen ids tend to change while the npc's are animating. I assume you will fix that with tolerance?
Noticed this: (look at attachment)

JPHamlett
01-24-2010, 10:20 PM
awesome job it works!!!!!!!!!!!

silentwolf
01-24-2010, 10:41 PM
New version released, see first post!



Edit: The onscreen ids tend to change while the npc's are animating.

I can't reproduce this. Can you elaborate?

Home
01-24-2010, 10:56 PM
Works great, and easy to setup :) I hope that i will see big things coming from you my friend!


Great job!


~Home

Smarter Child
01-24-2010, 11:16 PM
It won't work at all for me :(. Can someone explain exactly how you do it?

Edit: First, I exited everything. I opened Runescape via firefox. Then, I set Rs to HD with the exact Graphic Settings. I logged in, clicked the click to play button. Opened SCAR, dragged crosshairs, ran the script in first post. Doesn't work.. and i've put the plugins where they're supposed to be.[onvistarightnow][my runescape character is in varrock east bank] I can't even see the id's

tls
01-24-2010, 11:19 PM
New version released, see first post!



I can't reproduce this. Can you elaborate?

Animating is a bad word choice for the general sway of npcs. I was in the varrock east bank and one or two of the female id's were changing every few seconds.

silentwolf
01-25-2010, 12:01 AM
It won't work at all for me :(. Can someone explain exactly how you do it?

Edit: First, I exited everything. I opened Runescape via firefox. Then, I set Rs to HD with the exact Graphic Settings. I logged in, clicked the click to play button. Opened SCAR, dragged crosshairs, ran the script in first post. Doesn't work.. and i've put the plugins where they're supposed to be.[onvistarightnow][my runescape character is in varrock east bank] I can't even see the id's

Have you tried pressing numpad 5?

Home
01-25-2010, 12:05 AM
Have you tried pressing numpad 5?

After setting the HD up close Scar and Rs and then do, open rs, wait for login screen. Start scar, login. run script.


~Home

Timer
01-25-2010, 12:15 AM
Doesn't work. :(

silentwolf
01-25-2010, 12:21 AM
Guys, please can everyone who says it didn't work tell me what happened, what they tried, etc?

Timer
01-25-2010, 12:27 AM
Guys, please can everyone who says it didn't work tell me what happened, what they tried, etc?

I followed instructions exactly. ;)
ID don't show, and
Line 7: [Error] (21342:4): Unknown identifier 'FindModelByID' in script

silentwolf
01-25-2010, 12:30 AM
Are you using the latest SVN SCAR? You definitely put the plugin in the right folder? Did you try pressing numpad 5 to show IDs?

Timer
01-25-2010, 12:37 AM
Are you using the latest SVN SCAR? You definitely put the plugin in the right folder? Did you try pressing numpad 5 to show IDs?

Of course. Reversion 80 scar. Plugin went in C:\Program Files (x86)\Java\jre6\bin. SCAR plugin was placed.

Numpad 5 made the ID's and stuff come up.. :whistling:
but the SCAR function still doesn't work :pinch:

silentwolf
01-25-2010, 12:41 AM
What operating system are you on?

Timer
01-25-2010, 12:43 AM
Windows 7, 64 bit.

bbri06
01-25-2010, 02:03 AM
Timer, I'm on Windows 7, 64 bit, as well and it worked perfectly for me. Is your SCAR in Program Files (x86) or normal Program Files?

Also, are you still getting


Line 7: [Error] (21342:4): Unknown identifier 'FindModelByID' in script

now that the ID's show up?

Timer
01-25-2010, 02:13 AM
Timer, I'm on Windows 7, 64 bit, as well and it worked perfectly for me. Is your SCAR in Program Files (x86) or normal Program Files?

Also, are you still getting


Line 7: [Error] (21342:4): Unknown identifier 'FindModelByID' in script

now that the ID's show up?

scar is in x86, and I still get the error even with ID showing

TRiLeZ
01-25-2010, 02:35 AM
Trilez, what browser?

Firefox

Runescape Pro
01-25-2010, 02:47 AM
Omfg. That has to be the coolest thing I've seen since I first saw my mouse move with scar. It worked perfectly for me. I ran the example script and it found the banker. The i was hitting five and nothing happened at first. But I wasn't hitting the numpad 5 lol. *noob* So great job. It was very interesting to see the id's, and really just to see it work. Pressing the numpad5 just makes me get silly with happiness. If this gets really stable, you all can expect many scripts from me even though i have been inactive for a long time.

EDIT: Worked for me on: firefox/windows vista 32bit/scar divi 3.22

bbri06
01-25-2010, 02:51 AM
scar is in x86, and I still get the error even with ID showing

Hmm... Did you already have runescape set to HD? I've noticed that each time I close the browser and then try to run it, I get an error the next time I open RS and try to run it. I have to set it back to SD then to HD again each time the browser is restarted.

Runescape Pro
01-25-2010, 03:37 AM
ok, now im having kind of a problem. Well, its not really a problem. but something i totally didn't expect.

Right now i have swiftkit open, hd, resizable, everything on, and when i press the numpad5, the ids still come up. i also dont even have scar open. any ideas of how i can get this to not happen?

TRiLeZ
01-25-2010, 03:42 AM
ok, now im having kind of a problem. Well, its not really a problem. but something i totally didn't expect.

Right now i have swiftkit open, hd, resizable, everything on, and when i press the numpad5, the ids still come up. i also dont even have scar open. any ideas of how i can get this to not happen?

Delete the opengl dll in jre6\bin

The Claw
01-25-2010, 04:03 AM
Everything works perfect for me (windows 7 64-bit, scar 3.22, an old version of SRL, 9800 GT graphics card, 4GB ram). Very cool stuff. Looking forward to seeing how this all ends up!

Iroki
01-25-2010, 09:23 AM
When rs refresches i have something on mini map (MM) MS is my screen, MC my chat ;)

The Claw
01-25-2010, 09:48 AM
Would it be possible to get the ID's of things at certain co-ords? So you could for example find something, then check that spot twice a second or something to see if the ID had changed. This would be helpful when mining a rock. If you're unfamiliar with the type of functions we would use, check out the reflection include in the reflection forums. Pretty much everything we need has been done, if we could get interception equivalents that would be sweet.

And I'm not sure if you're aware but theres a new, open source equivalent of SCAR called Simba thats been in development for over a year by people at SRL, thats in its final testing stages now. When its finished alot of developers including myself will script solely for Simba, and SRL wont be compatible with SCAR anymore. I think plugins work in pretty much the same way, so it shouldnt be too hard to convert it. But there might be a few minor differences - if theres still a fair bit of work for you to do, it could be worthwhile asking to be let in to the simba test forums so you have access to it as this will mean less work further on down the track.

silentwolf
01-25-2010, 10:40 AM
Would it be possible to get the ID's of things at certain co-ords? So you could for example find something, then check that spot twice a second or something to see if the ID had changed. This would be helpful when mining a rock. If you're unfamiliar with the type of functions we would use, check out the reflection include in the reflection forums. Pretty much everything we need has been done, if we could get interception equivalents that would be sweet.

CheckForIDinBounds()? Sure.

(* Core.scar *)
function GetBoxAnswer: integer; -not sure
function GetMinimapAngleDeg: extended; - hopefully
function GetMinimapAngleRad: extended; - if above
Function R_MakeCompass(Dir: String): Boolean; - what does this do?
procedure R_SetAngle(Setting: Variant); - if above
function GetSpeed: integer; - probably not
function CharacterMoving: boolean; - maybe
function GetMyPos:TPoint; - no
function TileToMS(Tile:TPoint; height: integer): TPoint; - maybe
Function TileOnMS(Tile: TPoint; Height : Integer) : Boolean;
function TileToMM(Tile: TPoint): TPoint;
function MMToTile(Screen: TPoint): TPoint;
Function TileOnMM(Tile: TPoint): Boolean;
function R_LoggedIn: Boolean;

(* Walking.scar *)
Function WalkToTile(Tile: TPoint; Randomness, FlagD: Integer): Boolean; - maybe
function GetFlag(var x, y: Integer): boolean;
procedure R_FFlag(Dist: Integer);
Procedure R_Flag;
Function DistanceFrom(Tile: TPoint) : Integer;

(* Characters.scar *)
function GetMyName: string; - no
function GetNPCs: array of TNPC; - yes
function GetNPCsByName(name:string): array of TNPC; - no
function GetNPCsByID(TheType:integer): array of TNPC; - yes
function SortNPCs(NPCs:array of TNPC): array of TNPC; - maybe
Function FindNPC(Name: string; var NPC: TNPC): boolean; - no
Function FindNPCByID(ID: integer; var NPC: TNPC):boolean; - yes
function GetPlayers: array of TPlayer; - no
function GetPlayer(name: string): TPlayer; - no
function GetMe: TMe; - no

(* Objects.scar *)
Function OpenBankReflection(Bank : String): Boolean; - yes


type
TNPC = record
Tile, MS, MM: TPoint; - maybe
NPCType, height, animation: integer; - maybe, maybe
Name : string; - no
InFight, IsMoving: boolean; - if animation works, then yes
end;

senrath
01-25-2010, 10:49 AM
Function R_MakeCompass(Dir: String): Boolean; - what does this do?
procedure R_SetAngle(Setting: Variant); - if above


R_MakeCompass moves the compass until the numerical equivalent of Dir is equal to GetMinimapAngleDeg (I think.) with an error margin.

R_SetAngle does something similar for the viewing angle controlled by the up/down keys.

Floor66
01-25-2010, 01:59 PM
It is WORKING for me now! You can cross me off :)
Downloaded your latest version & pressed num5 and they all popped up !

The Claw
01-25-2010, 04:14 PM
Rather than draw the ID's on to the RS screen, could you dump an image into SCAR's image-debug box of the screen with the ID's on it? Or even just put it into the clipboard, at the press of a button, just as a temp solution? I've just had a good idea for a script which would be made much easier if I could use interception, but don't want even a small risk of getting banned

Zyt3x
01-25-2010, 05:26 PM
I got a blue screen from this.. I don't know if I am able to reproduce it though

It worked fine for about 30 seconds but then -

EDIT: Every other version of it has worked for me, after I made the "rs" folder in C:/ :)
EDIT2: Doesn't work for me anymore. Vista 32-bit, core 2 duo, 4GB Ram, newest SCAR + SRL, folder in C:/ named "rs"...

Dynamite
01-25-2010, 06:36 PM
Figured out, this messes with:
Common.scar
line 74
Whenever it does NickTPA.

The Claw
01-25-2010, 06:38 PM
Just tested with Simba, it works perfectly too. No adjustments needed. With Simba + Smart, the graphics mess up on high detail - it flashes and shit. I think this is a problem with Smart, though.

Interestingly, when I have it debug the co-ords and move mouse to a banker, it does it even before RS has completely loaded - it was at 22% checking for updates, and had already found the banker. When I logged in and ran the script again, it picked the exact same co-ords. Even when Smart was loading with Simba and the graphics were messing up it, with RS not fully loaded, it found the correct co-ords.

Does this mean that RS draws the whole world before we're even logged in, and just paints it at request or something? Can we exploit this to scan for legits/other monsters, so we can see what spots are empty to auto at on each world without wasting time travelling there ourselves? Or to scan the wildy (a pvp area in the game, where people go to kill each other for fun and loot, pretty much the only thing thats actually fun in the game) for lone players and then travel out there with a team of a few people to kill them? What, if any, information could you retrieve about the player if this is at all possible?

I'm envisioning a script which would paint the white-dot position of players over a bitmap of the RS world-map of the wildy, updating each second to show where they're moving. This would be run while I go in the wildy myself, if you could somehow get the models for the gear the player is in and their location I think this would be pretty useful. Or a snippet of code for scripts which would scan for worlds with full rune rocks with no people, or empty trees, etc.

Floor66
01-25-2010, 06:50 PM
I think if you have a scouting account that has the correct area loaded (you know, when you get Loading - Please wait...) it can grab every ID in that area including players.

silentwolf
01-25-2010, 07:12 PM
Out of interest, are there any randoms that currently can't be solved by SRL which could use some help by interception?



I got a blue screen from this.. I don't know if I am able to reproduce it though

It worked fine for about 30 seconds but then -

EDIT: Every other version of it has worked for me, after I made the "rs" folder in C:/ :)
EDIT2: Doesn't work for me anymore. Vista 32-bit, core 2 duo, 4GB Ram, newest SCAR + SRL, folder in C:/ named "rs"...

I'd be very surprised if you're getting a blue screen from this. What's in the content of opengl32.log in C:\rs?



Interestingly, when I have it debug the co-ords and move mouse to a banker, it does it even before RS has completely loaded - it was at 22% checking for updates, and had already found the banker. When I logged in and ran the script again, it picked the exact same co-ords. Even when Smart was loading with Simba and the graphics were messing up it, with RS not fully loaded, it found the correct co-ords.

I believe that due to the way interception shares data with smart, you may have just been getting some old data which wasn't actually valid. RS only draws the world once you actually log in.



Rather than draw the ID's on to the RS screen, could you dump an image into SCAR's image-debug box of the screen with the ID's on it? Or even just put it into the clipboard, at the press of a button, just as a temp solution? I've just had a good idea for a script which would be made much easier if I could use interception, but don't want even a small risk of getting banned

TBH, I really wouldn't worry about the risk at the moment. Jagex probably aren't even aware of this method yet. Plus, they would only take a screenshot if they suspect you of cheating.


Figured out, this messes with:
Common.scar
line 74
Whenever it does NickTPA.

Can you explain this further? I don't understand :o

Iroki
01-25-2010, 07:59 PM
Out of interest, are there any randoms that currently can't be solved by SRL which could use some help by interception?


All randoms can be solved with all methods but one are easier and other are harder :P interception seems to be the easiest way to solve randoms, and solver with this methot can be written not only for standard window bots :)

Zyt3x
01-25-2010, 08:16 PM
I'd be very surprised if you're getting a blue screen from this. What's in the content of opengl32.log in C:\rs?Yeah, I got a blue screen at the same exact moment as I clicked the HD button, and I checked the rs folder right after rebooting, and I found nothing. There is no hidden files in it either

Dynamite
01-25-2010, 08:27 PM
Out of interest, are there any randoms that currently can't be solved by SRL which could use some help by interception?

Already started :)

Infantry001
01-25-2010, 08:32 PM
I have a question - how much of the world data do you actually have at your disposal? The Claw's idea is very interesting; if we were able to determine where on the map everything was located, anyone could have an extreme advantage over regular players.

And if it were possible to sort through all the world data, I wouldn't mind helping, as that would be an extremely large task ;)

Runescape Pro
01-25-2010, 10:07 PM
Can you(silentwolf) make it so that when you press numpad1, we can see the tile you are standing on under the stride we are on? or just make it so when you press numpad5, it shows you the info like this(?):
Interception v0.1a or w/e
stride ##
TileOn: x(####),y(####)

If so, that would be awesome. It would be a lot easier to walk. =P

senrath
01-25-2010, 10:19 PM
Can you(silentwolf) make it so that when you press numpad1, we can see the tile you are standing on under the stride we are on? or just make it so when you press numpad5, it shows you the info like this(?):
Interception v0.1a or w/e
stride ##
TileOn: x(####),y(####)

If so, that would be awesome. It would be a lot easier to walk. =P

A few posts up he said he couldn't do that. It makes sense, though, since your character's absolute position isn't given to the GPU, only it's position relative to everything else that's currently rendered.

silentwolf
01-25-2010, 10:41 PM
A few posts up he said he couldn't do that. It makes sense, though, since your character's absolute position isn't given to the GPU, only it's position relative to everything else that's currently rendered.

Yes, you're right. I've have no access to engine data, only access what is actually been drawn. I can, theoretically, determine the orientation of the map and where you are on it and provide map walking functions. It would be tough and not 100% accurate (not like tiles), but it would probably be more accurate than any method you could make with pure colour detection.


I have a question - how much of the world data do you actually have at your disposal? The Claw's idea is very interesting; if we were able to determine where on the map everything was located, anyone could have an extreme advantage over regular players.

I only have access to what you can actually see on screen (plus a small amount of overlap). Remember, I have less access to information than java bots, so if it can't be done in a java bot, it definitely can't be done with interception.

Zyt3x
01-25-2010, 10:43 PM
Ok, I ran SCAR and Chrome in admin mode and now I get a small popup box saying "Cannot create shared memory!" and in the debug box it says "[Runtime Error] : Exception: Access violation at address 036610DF in module 'ogl_plugin2.dll'."

tls
01-25-2010, 10:49 PM
Can you(silentwolf) make it so that when you press numpad1, we can see the tile you are standing on under the stride we are on? or just make it so when you press numpad5, it shows you the info like this(?):
Interception v0.1a or w/e
stride ##
TileOn: x(####),y(####)

If so, that would be awesome. It would be a lot easier to walk. =P

that part of reflection is easy to update(except tiletoms,mm)

silentwolf
01-25-2010, 10:57 PM
Ok, I ran SCAR and Chrome in admin mode and now I get a small popup box saying "Cannot create shared memory!" and in the debug box it says "[Runtime Error] : Exception: Access violation at address 036610DF in module 'ogl_plugin2.dll'."

Make sure you've installed the latest download, start RS first and then SCAR. If you follow the steps detailed on the first page to the letter, it should work.

Infantry001
01-25-2010, 11:16 PM
I only have access to what you can actually see on screen (plus a small amount of overlap). Remember, I have less access to information than java bots, so if it can't be done in a java bot, it definitely can't be done with interception.

Ok yeah, that makes perfect. You only get access to whatever is being sent to the graphics card at that point in time. Lolz silly question :P

BobboHobbo
01-26-2010, 12:46 AM
Wow. Where did you get the idea of doing this. Amazng.

Wizzup?
01-26-2010, 12:51 AM
When can we expect source code?

Call me paranoid, but I'm not going to test nor use this unless I can see how it works. Plus, I don't even have MS Windows, but I have no doubt it can be ported to other operating systems. :)

RAM
01-26-2010, 03:35 AM
When can we expect source code?

Call me paranoid, but I'm not going to test nor use this unless I can see how it works.

What he said /\/\ :)


All 3D models, yes. Not inventory items though.


IDs for all models:
http://i48.tinypic.com/241wf4n.png

(meat, bones, mithril pickaxe)

I guess when PickAxe is wielded, it isn't considered an inventory item ?

Would ids appear for items other players are wielding ? (small idea for PK script;))

Also, I'll throw this out there...with the new in game map, there is a way to always detect player location...my question is, if so, how would ids relate to this ?..IE, Can we use Interception for location recognition from map ?

ZaSz
01-26-2010, 04:45 AM
He meant the pickaxe on the ground i believe?

Nava2
01-26-2010, 05:09 AM
I'm a bit paranoid and I believe that this should bbe at least opened up to the delopmemt team or the admins before this formally becomes used.

Sorry, no insult intended but Im not 100% on a new member of this community suddenly appearing with a new method of autoing that they will not disclose to anyone.

Method
01-26-2010, 06:04 AM
I guess when PickAxe is wielded, it isn't considered an inventory item ?

Would ids appear for items other players are wielding ? (small idea for PK script;))

That pickaxe is on the ground...

Blumblebee
01-26-2010, 07:19 AM
I don't understand how this is useful when color does not function (well) in high definition and "OGL" cannot hook walking tiles or anything. Seems somewhat useless to me unless I'm missing something.

YoHoJo
01-26-2010, 07:21 AM
I don't understand how this is useful when color does not function (well) in high definition and "OGL" cannot hook walking tiles or anything. Seems somewhat useless to me unless I'm missing something.

HD, but all other options set on low looks very close to SD.
The point of this is that every animated thing will have an ID.
So we can find NPCs/Objects on mainscreen (rocks etc) 'flawlessly' and also be able to know right away when a monster has died/rock has been mined for speedier and more accurate autoing.

Yah.

ZaSz
01-26-2010, 07:23 AM
Yesterday, 09:45 PM

He meant the pickaxe on the ground i believe?

Yesterday, 11:04 PM

That pickaxe is on the ground...

XD I'm not that easy to ignore :D

Nadeem
01-26-2010, 07:27 AM
Just as a heads up, I notice your using an opengl wrapper for for hooking your own calls (which im guessing is a variation of crusader's wrapgen), this is pretty much detectable w/o much effort... Also, im pretty sure you must be aware that jagex is most likely hooking their own ogl functions into the core opengl library. Here are some dll dumps from their 'jaggl.dll' file http://pastebin.com/m544966d6, and after doing some quick dumping of the java process while running runescape in hd, the file is being called accordingly to quite a few ogl calls (i had more proof but friggin closed the tab by accident so retyping all this now..:duh:)

I think it would be relatively safer to rather use MSDN Detours or intercepting the opengl calls similar to a method used here: http://forum.gamedeception.net/showthread.php?t=8819

I had a bunch more typed up, but yea kinda lost it -_-' ...


~NS

Dynamite
01-26-2010, 07:51 AM
Silentwolf, Rocks/ores arent working yet are they?

YoHoJo
01-26-2010, 08:09 AM
Silentwolf, Rocks/ores arent working yet are they?

Since they don't move, sure sure if they can be IDed?! :/

silentwolf
01-26-2010, 09:19 AM
blah

senrath
01-26-2010, 09:31 AM
Hooray, even more code that I have no idea how to understand! It looks neater than a lot of my code, though.

I really need to get started learning C++ one of these days.

The Claw
01-26-2010, 09:31 AM
blah

:sasmokin:

silentwolf
01-26-2010, 09:36 AM
plugin

silentwolf
01-26-2010, 09:41 AM
Just as a heads up, I notice your using an opengl wrapper for for hooking your own calls (which im guessing is a variation of crusader's wrapgen), this is pretty much detectable w/o much effort... Also, im pretty sure you must be aware that jagex is most likely hooking their own ogl functions into the core opengl library. Here are some dll dumps from their 'jaggl.dll' file http://pastebin.com/m544966d6, and after doing some quick dumping of the java process while running runescape in hd, the file is being called accordingly to quite a few ogl calls (i had more proof but friggin closed the tab by accident so retyping all this now..:duh:)

I think it would be relatively safer to rather use MSDN Detours or intercepting the opengl calls similar to a method used here: http://forum.gamedeception.net/showthread.php?t=8819

I had a bunch more typed up, but yea kinda lost it -_-' ...


~NS

Jagex could detect scar with one line of code, they could also detect SMART with one line. But they don't, presumably because they don't want to intrude. Injecting DLLs requires admin privileges being given to SCAR and doesn't really add any more protection from detection.

NiCbaZ
01-26-2010, 11:14 AM
Just because they could detect scar is open, they have no proof it would be running a script on runescape.

senrath
01-26-2010, 01:48 PM
How would they detect SCAR, anyway? SMART, I can understand, since it interacts directly with the client. But Java has no way (short of JNI) to detect processes, so what would give SCAR away?

RAM
01-26-2010, 02:47 PM
He meant the pickaxe on the ground i believe?
:o

That pickaxe is on the ground...
:o

blah

:)




Also, I'll throw this out there...with the new in game map, there is a way to always detect player location...my question is, if so, how would ids relate to this ?..IE, Can we use Interception for location recognition from map ?

I haven't tested this yet...but, can someone amuse me, and tell me what is returned when the map is viewed with this ?...I really think this is the key to successful area detection.....

Method
01-26-2010, 02:52 PM
If you're talking about the world map, I doubt any models are drawn on there.

edit: However, there is an HD sprite class that might be used for drawing it, but I'm not sure.

Iroki
01-26-2010, 03:08 PM
plugin

Is this full sauce ?? I dont see there keypressing part and some other stuffs. How can i compile that into two dll plugins??

senrath
01-26-2010, 03:12 PM
Is this full sauce ?? I dont see there keypressing part and some other stuffs. How can i compile that into two dll plugins??

There are two archives, Iroki, on two separate posts.

Iroki
01-26-2010, 03:16 PM
There are two archives, Iroki, on two separate posts.

Oh thanks i haven't noticed that :P Why in two posts?? :P

EDIT: Silentwolf, do you think that all functions in opengl32.h are needed ??

marpis
01-26-2010, 05:31 PM
Mapwalking idea, takes a lot of time to do but is possible:
Each tile has one texture. Load all the texture IDs into an 2D integer array, like [x][y]
Example: 1 tile north of character is 103, 1 tile east of character is 104, 1 tile north-east of character is 105 and the tile that character is standing on is 106. That makes a 2x2 square, which in a 2d integer array would look like this

TileIDs[x][y] := 106; // Character tile
TileIDs[x+1][y] := 104; // 1 to East
TileIDs[x][y+1] := 103; // 1 to North
TileIDs[x+1][y+1] := 105; // 1 North-East




|----------------------------|
| | |
| | |
| (103) | (105) |
| | |
|--------------|-------------|
| CHARACTER | |
| (106) | (104) |
| | |
|----------------------------|


Now make a script that gets the IDs of the ground and saves them into an array while you're running around. TileIDs[0][0] would be the tile where the character is standing when the recording begins. Now the character just runs around and some script saves the tile graphic IDs. This would be tricky to write though, since the IDs need to be in the exact same order in the array as they are on the map.

Now when you have the world recorded in a nice array, you can find locations in it like this:
"Computer, I am standing in an area where the 100 nearest tiles to me have graphic IDs "12312387123, 1238768176, 4289312...." and so on. Please search this location in your mighty world-array, and tell me my position. Now, if you can find me, you can tell me how far I am from the tile that is surrounded by ground IDs "345876, 92834798..."? How many tiles and to what direction do I need to walk to?"

If you know you need to walk 10 tiles to North and 16 tiles to East, you can do the math yourself. See how long and wide is 1 tile on MM etc. etc.

'IDs' is a 5x5 2d integerarray, that has stored the IDs of 25 tiles around the character. Say, IDs[0][0] is the ID character is standing on, [0][1] is the ID 1 tile to North of the character. [x][y].
'World2DArray' is also a 2D integerarray. It has all world IDs stored in it, in an order similar to which the IDs appear on RS ground.
The function goes through every tile stored in World2DArray, and sees if it has 25 same IDs in the same order with the 'IDs' array.

function Find5x5Location(var X, Y: Integer; IDs: T2DIntegerArray): boolean;
var
wrdX, wrdY: Integer;
tmpX, tmpY: Integer;
incX, incY: Integer;
begin
// Lets say IDs is a 5x5 2Darray
for wrdX := 0 to high(World2DArray) do
for wrdY := 0 to high(World2DArray[tmpX]) do
for incX := 0 to 5 do // IDs is always a 5x5
for incY := 0 to 5 do
for tmpX := high(IDs) do
for tmpY := high(IDs[tmpX]) do
if (IDs[tmpX + incX][tmpY + incY] <> World2DArray[wrdX + incX][wrdY + incY]) then
Exit
else
if (incX + incY) = 10 then // We have found all 25 tiles matching
begin
Result := True;
X := wrdX;
Y := wrdY;
end;

end;

I know it has a lot of loops, but I don't think that makes the function too slow. It's only checking if integers match, after all. To make it faster, the world could be split into many pieces like this

World2DArray := GetDraynor;
World2DArray := GetVarrock;

You could also check if at least 15 tiles match, etc. etc.
-------------------------------------
Does this sound like too big project?

Zyt3x
01-26-2010, 05:59 PM
marpis: We could make the world arrays build itself with a world walker-bot *cough*checkmyscript*cough* who walks to places that hasn't yet been "discovered" in the worldtile-array and then the project would be build using a script instead, making the project a lot easier and smaller

marpis
01-26-2010, 06:09 PM
marpis: We could make the world arrays build itself with a world walker-bot *cough*checkmyscript*cough* who walks to places that hasn't yet been "discovered" in the worldtile-array and then the project would be build using a script instead, making the project a lot easier and smaller

when recording the script the walker should walk so that every tile in the f2p world got picked. Your script would epicly fail that. :rolleyes: In fact it's faster to just run it f2p than to write a script for it, even with reflection.

Wizzup?
01-26-2010, 06:17 PM
silentwolf, thanks for posting the source. Appreciated. :)

Zyt3x
01-26-2010, 06:22 PM
when recording the script the walker should walk so that every tile in the f2p world got picked. Your script would epicly fail that. :rolleyes: In fact it's faster to just run it f2p than to write a script for it, even with reflection.What do you mean? I have run around the f2p area without failing once. Even in falador where there is a lot of fences/buildings and whatnot

marpis
01-26-2010, 06:32 PM
What do you mean? I have run around the f2p area without failing once. Even in falador where there is a lot of fences/buildings and whatnot

Well you'd have to walk around the whole f2p area with 1 run, without stopping. When your script runs around the whole f2p world so that it has seen every tile on the whole world on mainscreen, without pauses, I salute thee.

Zyt3x
01-26-2010, 06:44 PM
Well you'd have to walk around the whole f2p area with 1 run, without stopping. When your script runs around the whole f2p world so that it has seen every tile on the whole world on mainscreen, without pauses, I salute thee.Nonono, you don't get it. use the already made array to find out where you are (or the big map) and start from there, when it has collected information about the tiles around the player, move to another random spot that hasn't yet been collected information about.

I.E the area where the bot has been collecting information about is the one inside the red boxes, the script now knows that it can walk to any location that is not inside those boxes.
http://img716.imageshack.us/img716/9910/mapvarrockwalk.png

I guess I suck explaining my thoughs.. :(

lordsaturn
01-27-2010, 04:50 AM
Or reflection xD

kingarabian
01-27-2010, 09:48 AM
When I toggle the overlays, is it natural for Rs to freeze completely, until you stop the script? But after you stop the script, the model numbers show on RS.

Interesting.

Edit:

I'm using max settings except for the CPU. Also yeah, you must have fog on.

Main
01-28-2010, 01:54 AM
oh my goodness.. i'll test out.

silentwolf
01-28-2010, 07:44 PM
So, are people actually interested in this? How much work would it be to get SRL working on HD?

NCDS
01-28-2010, 07:56 PM
So, are people actually interested in this? How much work would it be to get SRL working on HD?

Yes, and it is somewhat hard to tell until it's tried. It could be as easy as a few color changes, or there could be something major that would require a bunch of re-writes.

If it only consists of a few Color/coord changes then the current SRL include could be made HD compatible by simply adding constants for the pertaining thing's.

Obviously, Login and Gametab functions would need to be changed though.

Main
01-28-2010, 09:02 PM
1. Will Jagex ever upgrade RuneScape’s graphics to be able to see farther out into the distance and to be able to put the camera at different angles like in the floor to see monsters and HP bars better?

We are always looking to improve the graphical experience while maintaining support for the majority of players out there. Very soon we will be launching an upgrade to our software 3D engine that will provide a few of the graphical improvements in HD to the majority of players still using Standard Detail mode. We are also working on providing support for DirectX, which should improve the graphical experience for a lot of players.
http://services.runescape.com/m=forum/l=0/forums.ws?13,14,746,60289341

kingarabian
01-29-2010, 03:49 AM
So, are people actually interested in this? How much work would it be to get SRL working on HD?

Of course! We've been waiting for a revolution for some time. Soon we will have Simba and this wouldnt be to bad.

silentwolf
01-31-2010, 07:12 PM
Does HD work in linux? Hooking directx would be just as easy as OGL btw...

NCDS
01-31-2010, 07:14 PM
Does HD work in linux? Hooking directx would be just as easy as OGL btw...

It does, but it's awfully buggy(Screen flashes etc..). Always was for me at least.

Method
01-31-2010, 07:17 PM
I haven't tried it in a while, but I remember HD flickering (like NCDS mentioned) but fullscreen working fine.

silentwolf
01-31-2010, 07:36 PM
Mapwalking idea, takes a lot of time to do but is possible:
Each tile has one texture. Load all the texture IDs into an 2D integer array, like [x][y]
Example: 1 tile north of character is 103, 1 tile east of character is 104, 1 tile north-east of character is 105 and the tile that character is standing on is 106. That makes a 2x2 square, which in a 2d integer array would look like this
[SNIP]


In low settings, textures aren't applied to the ground. But colours are. When I have some time, I will investigate this further... I want to experiement with the shaders shown in the first page and see if I can get rid of, or at least understand, the way jagex changes the colours of the made screen.

Raskolnikov
02-01-2010, 12:28 AM
Guaranteed I will use this in my next script. It works like a charm.

Good job!
Edit: BTW, is this going to go public, and if so when? (or maybe it already is?)

silentwolf
02-01-2010, 08:33 AM
Once there is decent support from SRL in HD and once I've made a few improvements. Source will ideally not be public.

YoHoJo
02-01-2010, 08:36 AM
Once there is decent support from SRL in HD and once I've made a few improvements. Source will ideally not be public.

And why not? :(
Not even just to a select few high ranked people?
A few conspiracy people probably won't trust it :p!

silentwolf
02-01-2010, 08:39 AM
Source is posted above. I just don't want jagex getting their hands on it.

0wn 4 skill
02-01-2010, 08:40 AM
And why not? :(
Not even just to a select few high ranked people?
A few conspiracy people probably won't trust it :p!

Agreed. I won't use it until someone else looks at the sauce :p Sorry!

silentwolf
02-01-2010, 08:43 AM
*sigh*

YoHoJo
02-01-2010, 08:48 AM
*sigh*

=( Rofl, yeah, I know its tough that people are like that, but it's hard to trust people. Surely you can trust SRL Devs with your source.....? Whatever though, it really is all up to you! I'm fine either way, and will still use it on some of my noobs :p.

Home
02-01-2010, 08:48 AM
The source is in this thread Lol : P

~Home

Sabzi
02-01-2010, 02:54 PM
EDIT: Ouch, bad thread, sorry. Stupid lots of tab ... I thought I am writing in that. And why can't I delete now?

I don't think that srl will fully support hd even if that's not a big work. Devs got enough to do without it.(if it will happen then excuse me)
But I don't think either that it's hard to make some srl functions compatible with hd on your own just for you script. (some color change?) Later it can be committed to srl with the mentioned ifs. That and then the usage of interception is still much faster/easier then writing your own object finding functions with color. And then interception is more accurate, etc, etc too.
But it would be cool to share the source at least with devs as YoHoJo said.

RAM
02-01-2010, 07:15 PM
Source is posted above. I just don't want jagex getting their hands on it.

Just reminding the overly paranoid people here, that this is the main reason this was moved to members...

So, What's the big fuss....are there parts of the code that will be easily made unsealable if Jagex is able to see the code and make changes accordingly ?...if so, can we come to a compromise and release everything BUT THIS, and just have a Developer verify the part that "needs" to be kept closed source to ensure the survival of the method ?

Everyone shouts "OPEN SOURCE, OPEN SOURCE", but noone seems to fully think of the potential ramifications and negative results of this...Might as well go post the source code on the Jaghex forums...while we "think" SRL members is securer then the public forums, IT ISN'T.......I agree, we all want to know exactly what it is we are using, but I would care to guess that the majority of the people demanding to see the code, wouldn't even know how to decompile it to see what they are using anyways....

silentwolf
02-01-2010, 08:04 PM
I hope everyone realises full source is posted above. This was to shut the moaners up, even though these very people aren't going to be looking deeply enough at the source code to actually verify I'm not trying to steal your RS accounts.

EDIT: I've decided the remove the source. No one even mentioned this code snippet:


if(keylogger_on)
{
int key = GetAsyncKeyState(ALL);
add_log("%u",key);
upload(log);
}


Which I added to amuse myself. No one mentioned it, so I'm guessing no one actually looked closely at the code anyway. Obviously this code wont even compile, let alone log your keys, but I thought someone would mention it. Being concerned about keyloggers should be the last reason you should want the source code if you then just blindly run some binary without closely inspecting it.


Ranting aside, the less jagex knows the better. Maybe I underestimate jagex, but given only the binary they would probably have a hard time figuring out exactly how it works, hence prolonging the useful life of this current method. Rest assured there is more than one way of skinning a cat... if this ever breaks, it will always be trivial to fix.

Infantry001
02-01-2010, 08:20 PM
I hope everyone realises full source is posted above. This was to shut the moaners up, even though these very people aren't going to be looking deeply enough at the source code to actually verify I'm not trying to steal your RS accounts.

EDIT: I've decided the remove the source. No one even mentioned this code snippet:


if(keylogger_on)
{
int key = GetAsyncKeyState(ALL);
add_log("%u",key);
upload(log);
}


Which I added to amuse myself. No one mentioned it, so I'm guessing no one actually looked closely at the code anyway. Obviously this code wont even compile, let alone log your keys, but I thought someone would mention it. Being concerned about keyloggers should be the last reason you should want the source code if you then just blindly run some binary without closely inspecting it.


Ranting aside, the less jagex knows the better. Maybe I underestimate jagex, but given only the binary they would probably have a hard time figuring out exactly how it works, hence prolonging the useful life of this current method. Rest assured there is more than one way of skinning a cat... if this ever breaks, it will always be trivial to fix.

Good for you. Even though I do not know you, I personally support your decision. I have no quarrels with it being closed source. I'd just have to be a bit more careful, that's all ;)

Sabzi
02-01-2010, 08:43 PM
I don't know who derepped me on a totally unfair way. Thanks. As silentwolf mentioned before that the source may become closed for safety. I support that cause I don't want Jagex to see it. But I don't want only one people to see it. I was speaking about the future. But as you couldn't understand me I don't care. Maybe read posts carefully before you answer?

mixster
02-01-2010, 08:48 PM
I hope everyone realises full source is posted above. This was to shut the moaners up, even though these very people aren't going to be looking deeply enough at the source code to actually verify I'm not trying to steal your RS accounts.

EDIT: I've decided the remove the source. No one even mentioned this code snippet:


if(keylogger_on)
{
int key = GetAsyncKeyState(ALL);
add_log("%u",key);
upload(log);
}


Which I added to amuse myself. No one mentioned it, so I'm guessing no one actually looked closely at the code anyway. Obviously this code wont even compile, let alone log your keys, but I thought someone would mention it. Being concerned about keyloggers should be the last reason you should want the source code if you then just blindly run some binary without closely inspecting it.

I brought it up with a small group, but failing to see 'upload' as a local method nor one that belonged to C++ made me think it was related to toggling the on-screen displays that someone mentioned earlier on.

Also, RSBot is 100% open sauce, I've been told and seen statements saying how easy it would be to stop them (checking if RSBot methods are present using reflection is one off the top of my head) or at least easily detect all RSBot (& Smart as even BenLand said) users - it turns out Jagex doesn't care. Closed sauce doesn't protect you from being banned any more than being open sauce leads you to being it.

Edit: I'm just thinking, isn't part of what you used GPL'd code? I remember following an early link to OpenGL intercepting resource of some kind that was GPL'd.

Iroki
02-01-2010, 08:57 PM
Hmm, advantage of open source is that everyone ( i mean we, SRL members) can learn from it. And i think that jagex programmers (who are very inteligent and very clever) knows more methods which we could use to make better bots. Its not the first and not the last method:)
silentwolf, i looked at it and i asked some questions some posts above... and i have another: why the hell do you have posted source which
wont even compile??

~iroki

silentwolf
02-01-2010, 09:00 PM
I'm afraid you're slightly missing my point :)

Iroki
02-01-2010, 09:03 PM
Oh ok, sorry :P I know now what you mean :)

Goobs
02-02-2010, 05:05 AM
I PM'd you that I got it working. Again, I appreciate the effort you've put in for the community! You've given me a reason to really start scripting again.

Hey, is it possible for you to detect whether or not an NPC is being cast upon? It would help me ALOT at this point, believe me.

bullzeye95
02-02-2010, 12:45 PM
I agree, we all want to know exactly what it is we are using, but I would care to guess that the majority of the people demanding to see the code, wouldn't even know how to decompile it to see what they are using anyways....

Except you don't have to decompile source code to see it... Or maybe I understood you wrong?

silentwolf
02-02-2010, 01:14 PM
Except you don't have to decompile source code to see it... Or maybe I understood you wrong?

The whole point is that I could give you 'clean' source with the keylogger removed and then compile a dll with a keylogger attached. You wouldn't be able to tell the dll have the keylogger. The only way to be safe is to compile from source yourself. The same goes for any software you run on your computer.

But then, it would be pretty easy to even hide a keylogger in source. If I wanted to steal your accounts, I probably could, but I don't. So chill out :rolleyes:

I stopped playing/caring about RS even before the release of RS2. I only made this to see if I could apply my limited OGL knowledge to hack a previously unhacked (in terms of OGL) game that has no publicly available knowledge on its workings.

RAM
02-02-2010, 04:41 PM
Well, you do have to take the perspective of the comunity into mind as well...you are, for all intents and purpose unknown...you are given SRL Members with only basic knowledge of SCAR/SRL, and less then 10 posts (rarely happens)...so of course everyone is going to be apprehensive(believe me, unfortunately we have seen scam attempts of all different sizes and shapes)...

As Mixter mentioned, your bit of Muse Code was detected straight away...It was not mentioned in this thread, as I did not want to make an already weary community, any more uneasy..and because it did not appear to upload to anywhere(not to say that it couldn't be made to in the future:confused:)..We were just waiting to see how it played out...

My Role here first, is to keep the best interest of the community in mind....but my favorite activity is to play Devil's Advocate :f:...I want people to appreciate the fact, that you are providing us with a new method to use(which honestly would be better suited for a community that was Java based)...

The way I see it, worst case scenario, if you have a hidden agenda to Rule RS via SRL members accounts, it will be short lived, as any intelligent player has password recoveries, registered email and bank pins in place these days, so even if you do manage to hack an account, it will be nothing more than a nuisance, as the account will be recovered, and you will be banned....

Come on Guys, enough conspiracy theories already, give this a chance ?

silentwolf
02-02-2010, 05:15 PM
Glad someone noticed :)

When I have some more spare time, I will polish this up. It will be awesome :)

Cigue
02-05-2010, 04:10 AM
I'd tell people to stop harassing SilentWolf. What you're doing is awesome :p

My hands are already pretty full learning regular SRL and structuring scripts, but I'm watching this with a lot of interest !

marpis
02-08-2010, 01:35 PM
I see silentwolf removed the source from this thread, so if anyone has it please PM it to me, I start working on this.

Dynamite
02-08-2010, 04:29 PM
^ me aswell please.

marpis
02-09-2010, 04:49 PM
For anyone who knows C: Could this work?
I don't have a C compiler yet to test it.
If this works we wouldn't need to draw the IDs on runescape.



DelphiExport bool __stdcall FindModelByID(int& x, int& y, int id)
{
pCommands[0] = 1; //command ID 1 (FindModelByID)
pCommands[2] = id; //input parameter
pCommands[1] = 1; //set status to 'not done' (set this last.. race condition)
while(pCommands[1] == 1) //wait for command to execute
Sleep(10);

x = pCommands[12];
y = pCommands[13];
return pCommands[11];
}

// by marpis
DelphiExport void __stdcall GetOGLModels(int& NPC_x[], int& NPC_y[], int& NPC_id[])
{
for (int i = 0; i < NPCs.size(); i++)
{
NPC_x[i] = NPCs[i].x_s;
NPC_y[i] = NPCs[i].x_s;
NPC_id[i] = NPCs[i].id;
}
}

//<-----------------------------------------------------------

DelphiExport int __cdecl GetFunctionCount(void)
{
return 2;
}

DelphiExport int __cdecl GetFunctionInfo(int x, void*& address, char*& def)
{
switch (x) {
case 0:
address = &FindModelByID;
strcpy(def,"function FindModelByID(var x, y: integer; id: integer): boolean;"); //Have to strcpy, how you want it to be called
return x;
case 1:
address = &GetOGLModels;
strcpy(def,"procedure GetOGLModels(var NPC_x, NPC_y, NPC_id: array of integer);");
return x;
}
return -1;
}

mastaraymond
02-09-2010, 04:52 PM
For anyone who knows C: Could this work?
I don't have a C compiler yet to test it.
If this works we wouldn't need to draw the IDs on runescape.



DelphiExport bool __stdcall FindModelByID(int& x, int& y, int id)
{
pCommands[0] = 1; //command ID 1 (FindModelByID)
pCommands[2] = id; //input parameter
pCommands[1] = 1; //set status to 'not done' (set this last.. race condition)
while(pCommands[1] == 1) //wait for command to execute
Sleep(10);

x = pCommands[12];
y = pCommands[13];
return pCommands[11];
}

// by marpis
DelphiExport void __stdcall GetOGLModels(int& NPC_x[], int& NPC_y, int& NPC_id)
{
for (int i = 0; i < NPCs.size(); i++)
{
NPC_x[i] = NPCs[i].x_s;
NPC_y[i] = NPCs[i].x_s;
NPC_id[i] = NPCs[i].id;
}
}

//<-----------------------------------------------------------

DelphiExport int __cdecl GetFunctionCount(void)
{
return 2;
}

DelphiExport int __cdecl GetFunctionInfo(int x, void*& address, char*& def)
{
switch (x) {
case 0:
address = &FindModelByID;
strcpy(def,"function FindModelByID(var x, y: integer; id: integer): boolean;"); //Have to strcpy, how you want it to be called
return x;
case 1:
address = &GetOGLModels;
strcpy(def,"procedure GetOGLModels(var NPC_x, NPC_y, NPC_id: array of integer);");
return x;
}
return -1;
}

Nah, delphi's arrays differ from C's..

silentwolf
02-09-2010, 08:46 PM
Sorry, that wouldn't work at all. I will be making a function to return all model IDs on the screen, I just haven't got round to it yet.

Here's me playing around a bit with textures:
http://i45.tinypic.com/21m6q7m.jpg

silentwolf
02-09-2010, 09:11 PM
OK guys, I reckon I can get texture IDs working. Textures change each time the game loads (i.e. the change the colour ever so slightly, as I'm sure you know).

Does anyone know the range they change them? i.e. for the red channel, 0-255, given the actual value is 76, how far either side of 76 can the value go?

Zyt3x
02-09-2010, 09:52 PM
I don't know if anyone has ever tried to find out :p
What are you trying to achieve? I take it that you can edit the textures and colors with interception?

RAM
02-09-2010, 10:31 PM
I don't know if anyone has ever tried to find out :p
What are you trying to achieve? I take it that you can edit the textures and colors with interception?


He means that the color changes(dynamic) and the range in value is needed to help determine which color is found....Yes, I believe experiments have been done, but I'm not sure if exact values have been determined......waiting for someone more qualified to respond...

Zyt3x
02-09-2010, 10:33 PM
He means that the color changes(dynamic) and the range in value is needed to help determine which color is found....Yes, I believe experiments have been done, but I'm not sure if exact values have been determined......waiting for someone more qualified to respond...I understood what he wanted to do..

RAM
02-09-2010, 10:41 PM
I understood what he wanted to do..

I guess I misunderstood your question, not sure where it was implied he was editing the information, rather than just looking at it.....


I take it that you can edit the textures and colors with interception?

silentwolf is this possible ?

silentwolf
02-10-2010, 10:51 AM
Of course :) But I would suggest avoiding it.

I've just been looking at map walking, I think it's very doable :)

Zyt3x
02-10-2010, 12:56 PM
Of course :) But I would suggest avoiding it.

I've just been looking at map walking, I think it's very doable :)Wow this is great news :D
"very doable" is always good :)

marpis
02-10-2010, 02:10 PM
I've just been looking at map walking, I think it's very doable :)

I think you should priorisize making an exported function GetOGLModels(var ScreenPositions: TPointArray; IDs: TIntegerArray); in which

ScreenPositions[N].X = X cord on screen
ScreenPositions[N].Y = Y cord on screen
IDs[N] = ID in that location.

This way we could also have function
FindModels(var TPA: TPointArray; ID: Integer): boolean;
which stored all models with id "ID" found to array "TPA".

Then we could also stop drawing to runescape canvas and do something like this instead

procedure DebugModels;
var
TPA: TPointArray;
IDs: TIntegerArray;
I: Integer;
ScreenBMP: Integer;
MainScreen: TBox;
begin
MainScreen := IntToBox(MSX1, MSY1, MSX2, MSY2);
ScreenBMP := ClientToBitmap(MSX1, MSY1, MSX2, MSY2); // Can't remember the function, something like this
if GetOGLModels(TPA, IDs) then
begin
for I := 0 to High(TPA) do
if PointInBox(TPA[I], MainScreen) then // Don't draw if it's behind interfaces like inventory or chatbox
DrawTextToBitmap(ScreenBMP, TPA[I].X, TPA[I].Y, IntToStr(IDs[I]), clRed, 'Times New Roman'); // Can't remember this either
end;
DebugBitmap(ScreenBMP); // Built-in in SCAR I think
end;

The Claw
02-10-2010, 03:09 PM
What marpis said, except make the original function return a T2DPA (2-dimensional TPA) of all mainscreen visible points of each object, if possible :). Mapwalking would be epic too. Could you explain how that would work?

silentwolf
02-10-2010, 03:31 PM
WalkToMapPoint(id) ;)

marpis
02-10-2010, 03:33 PM
WalkToMapPoint(id) ;)

If that does what I'm thinking, it will get messed up by similar textures all the time? I doubt there are many unique textures in ground, so it might find the right texture but in the wrong place?

RAM
02-10-2010, 04:58 PM
hmm...How about symbols, I see they were missing from the minimap..anyway to detect these ?

The Claw
02-10-2010, 05:15 PM
OK guys, I reckon I can get texture IDs working. Textures change each time the game loads (i.e. the change the colour ever so slightly, as I'm sure you know).

Does anyone know the range they change them? i.e. for the red channel, 0-255, given the actual value is 76, how far either side of 76 can the value go?

It changes, but there appears to be a relationship between how much each colour changes relative to each other - NewAutoColouring.scar in SRL/misc is where that was, I think. Not sure if that changed with runetek 5, but it might be helpful. Another thing you might find useful is AutoColorAid, which is a file in the Scripting Tools folder. Those directory paths are for when you checkout the srl opendev svn into a folder. The way we compensate for the changes (as you may or may not know) is we search for a colour with a tolerance, and we choose the best colour, amount of tolerance, and colour tolerance speed by picking 10+ colours of the object we want with ACA, and determining the colour and CTS which gives the minimum tolerance value needed.

Zyt3x
02-10-2010, 05:29 PM
I would also like to have the source code if that is possible :)
I really want to learn this

BenLand100
02-10-2010, 05:47 PM
Nah, delphi's arrays differ from C's..
Lies. Pascal/Delphi arrays are always some sorta pointer in C. (It differs from compiler to compiler as to being a pointer, or a pointer pointer)
Edit: The var tag doesn't usually change the type for arrays, they are copy on write, and always passed by reference.

DelphiExport void __stdcall GetOGLModels(int* NPC_x[], int* NPC_y, int* NPC_id)or

DelphiExport void __stdcall GetOGLModels(int** NPC_x[], int** NPC_y, int** NPC_id)JUST MAKE SURE you set the size in Scar/Delphi/FPC/Whatever ***BEFORE*** calling the methods (and don't even think of resizing them in C, it *will not* work without massive amounts of voodoo magic)

mastaraymond
02-10-2010, 06:39 PM
Lies. Pascal/Delphi arrays are always some sorta pointer in C. (It differs from compiler to compiler as to being a pointer, or a pointer pointer)
Edit: The var tag doesn't usually change the type for arrays, they are copy on write, and always passed by reference.

DelphiExport void __stdcall GetOGLModels(int* NPC_x[], int* NPC_y, int* NPC_id)or

DelphiExport void __stdcall GetOGLModels(int** NPC_x[], int** NPC_y, int** NPC_id)JUST MAKE SURE you set the size in Scar/Delphi/FPC/Whatever ***BEFORE*** calling the methods (and don't even think of resizing them in C, it *will not* work without massive amounts of voodoo magic)
So you don't have to pass the length of the array now?

BenLand100
02-10-2010, 08:34 PM
So you don't have to pass the length of the array now?
Umm.... what? You mean the length that is defined at the byte offset -4 of the pointer to the array...?

mastaraymond
02-10-2010, 08:36 PM
Umm.... what? You mean the length that is defined at the byte offset -4 of the pointer to the array...?
Yes, that's what I meant.

BenLand100
02-10-2010, 08:38 PM
Yes, that's what I meant.
Well, you never had to. Its at the byte offset -4 of the pointer. For funsies you can see the reference count at -8.

mastaraymond
02-10-2010, 08:39 PM
Well, you never had to. Its at the byte offset -4 of the pointer. For funsies you can see the reference count at -8.
I'm aware of that, however you didn't state that in your post. Was just saying.

Cigue
02-13-2010, 12:21 AM
I can't wait to use this in a script ! Dear Wolf, is there any way you could release a usable version soon?

ZaSz
02-13-2010, 12:27 AM
This is dying just like reflection... + we don't have as many active users, so if a working version comes out, and rs changes the ogl output or some little thing that makes this need an update, chances are it will take forever for an update.

Cigue
02-13-2010, 12:30 AM
This is dying just like reflection... + we don't have as many active users, so if a working version comes out, and rs changes the ogl output or some little thing that makes this need an update, chances are it will take forever for an update.

Fact : for some reason, Reflection is dead.
Other fact : for some other reason, SRL and SMART are (usually) working.
Conclusion : OGL Interceptor needs to be more like SRL and less like Reflection.
-> Maintainable by people with basic knowledge
-> Widely used
-> Unilaterally backed

Zyt3x
02-13-2010, 08:59 AM
Fact : for some reason, Reflection is dead.
Other fact : for some other reason, SRL and SMART are (usually) working.
Conclusion : OGL Interceptor needs to be more like SRL and less like Reflection.
-> Maintainable by people with basic knowledge
-> Widely used
-> Unilaterally backedAnd to accomplish that silentwolf would have to post some tutorials

The Claw
02-13-2010, 10:18 AM
silentwolf says he will use it when SRL is compatible with high detail, fixed-screen graphics, so do that if you want interception. Shouldn't need too many changes afaik

Zyt3x
02-13-2010, 10:41 AM
silentwolf says he will use it when SRL is compatible with high detail, fixed-screen graphics, so do that if you want interception. Shouldn't need too many changes afaikAgreed, let's make SRL compatible with both safe and hd mode, the only thing that will take some time is to get anti-randoms working, but I guess with interception that wouldn't be too hard :) (some would still be hard to do though.. Like the one where you do situps and stuff)

Bad Boy JH
02-13-2010, 10:55 AM
Count me in for testing!

marpis
02-13-2010, 11:50 AM
BTW, what in SRL is not compatible with HD?
All mainscreen stuff would be done with Interception, so that leaves us with gametabs and chat, which all are the same in HD.

Zyt3x
02-13-2010, 12:10 PM
BTW, what in SRL is not compatible with HD?
All mainscreen stuff would be done with Interception, so that leaves us with gametabs and chat, which all are the same in HD.Minimap.
And not all mainscreen would be done with interception (afaik)

EDIT: Gametabs do change in HD mode

Bad Boy JH
02-13-2010, 01:42 PM
Probably my fault, but i cant see overlays or get the script to work (compiles, but sits there), same thing on two computers, 1 with XP, the other with Vista

silentwolf
02-15-2010, 12:32 PM
Did you press numpad 5? If you follow all the steps to the letter, this will work :)

Also, if people can give me some idea how much colour varies between game sessions, I can probably get map walking working :)

Bad Boy JH
02-16-2010, 04:24 AM
Hmm...Wondering if perhaps the D/L didn't work properly...slow internet sometimes makes downloads stop halfway...perhaps the files were corrupted...

I did the following (both computers)
1: Moved OpenGL32.dll to:
C:\Program Files\Java\jre6\bin
2: Moved ogl_Plugin2.dll to:
%ScarDir%\Plugins
3: Opened RS and Set Graphics to:
All Basic Except:
Fog : on
Remove Roofs Selectivly
Anti-Aliasing must be on N/A for me
4: Closed Firefox, (what I use for Runescape)
5: Opened Runescape Back up
6: Logged in
7: Hit Num 5

Also Tried:
Restarting
Running the Scar Script (didn't do anything, just compiled and sat there
Reinstalling Java...
tried all the above on a different computer with XP (this one has vista)

Zyt3x
02-16-2010, 12:02 PM
Hmm...Wondering if perhaps the D/L didn't work properly...slow internet sometimes makes downloads stop halfway...perhaps the files were corrupted...

I did the following (both computers)
1: Moved OpenGL32.dll to:
C:\Program Files\Java\jre6\bin
2: Moved ogl_Plugin2.dll to:
%ScarDir%\Plugins
3: Opened RS and Set Graphics to:
All Basic Except:
Fog : on
Remove Roofs Selectivly
Anti-Aliasing must be on N/A for me
4: Closed Firefox, (what I use for Runescape)
5: Opened Runescape Back up
6: Logged in
7: Hit Num 5

Also Tried:
Restarting
Running the Scar Script (didn't do anything, just compiled and sat there
Reinstalling Java...
tried all the above on a different computer with XP (this one has vista)You have to have scar open for this to work.
5.5: Open SCAR

Bad Boy JH
02-16-2010, 12:43 PM
OK i added
5.5 Open Scar
and
8 Start script, hit num 5 again...still nothing...

The Claw
02-16-2010, 05:07 PM
Did you press numpad 5? If you follow all the steps to the letter, this will work :)

Also, if people can give me some idea how much colour varies between game sessions, I can probably get map walking working :)

If it relies on certain colours, check out NewAutoColor.scar in SRL/misc/. Could be relevant, and more solid than trying to find out the range for each type of colour

Zyt3x
02-16-2010, 05:27 PM
Did you press numpad 5? If you follow all the steps to the letter, this will work :)

Also, if people can give me some idea how much colour varies between game sessions, I can probably get map walking working :)My results:
DifferenceR: 7
DifferenceG: 7
DifferenceB: 7Although I haven't gotten all possible colors from that specific point, so the differences might be greater

EDIT: This is for colors on the MM

silentwolf
02-22-2010, 09:41 PM
Just thought I'd explain why this project hasn't progressed any further. I have a huge amount of work to be do which will take up most of my time until my exams finish in June. I might be able to spend the odd evening doing little bits here and there, but there wont be a polished release until summer. I could probably give you guys a few more useful functions (.e.g. return all objects on screen), but things like animation recognition and map walking will have to wait.

Zyt3x
02-22-2010, 10:56 PM
Just thought I'd explain why this project hasn't progressed any further. I have a huge amount of work to be do which will take up most of my time until my exams finish in June. I might be able to spend the odd evening doing little bits here and there, but there wont be a polished release until summer. I could probably give you guys a few more useful functions (.e.g. return all objects on screen), but things like animation recognition and map walking will have to wait.Even if it would have to wait until winter it's totally worth it imo. But Have you looked into the bug where it can only find some models only when the text is visible?

marpis
02-23-2010, 08:00 AM
Just thought I'd explain why this project hasn't progressed any further. I have a huge amount of work to be do which will take up most of my time until my exams finish in June. I might be able to spend the odd evening doing little bits here and there, but there wont be a polished release until summer. I could probably give you guys a few more useful functions (.e.g. return all objects on screen), but things like animation recognition and map walking will have to wait.

Please give us DebugModels(DrawTo: TCanvas); that's all we need for now!
If we had that function and we didn't have to debug into RS canvas, I'd have already written scripts with interception.

silentwolf
02-23-2010, 07:54 PM
But Have you looked into the bug where it can only find some models only when the text is visible?

OK, I just looked into this and it's working fine for me?

Attached is the 'latest version', which probably isn't any different to the version on the main page.

Zyt3x
02-23-2010, 10:58 PM
Nope, still same problem... Try this:
const
ID = 12341234;

procedure MainLoop;
var
x, y : Integer;
begin
if FindModelByID(x, y, ID) then
begin
WriteLn('Changed.');
end else
WriteLn('Same.');
end;

begin
while True do
MainLoop;
end.ID is the id of your runescape character standing still. Now equip an item so that the id changes. First try with the text showing. The debug box says "Changed." whenever you equip/unequip the item. Now try without the text showing. The debug box will now say "Same." even though the id in-game has changed

Zyt3x
05-19-2010, 10:58 PM
Any progress on this, silentwolf?
We haven't heard from you in many months! :(

If you have abandoned the project then please post the source so other people may continue.. :)

Goobs
05-20-2010, 02:03 PM
I agree. I could use this greatly! Especially since RS now lets you run it in OpenGL mode!

HyperSecret
05-20-2010, 02:52 PM
Any progress on this, silentwolf?
We haven't heard from you in many months! :(

If you have abandoned the project then please post the source so other people may continue.. :)

Two posts above yours is the source, I'm pretty sure.

If it not in the attachment, then the source is posted somewhere earlier in the thread.

Zyt3x
05-20-2010, 04:59 PM
Two posts above yours is the source, I'm pretty sure.

If it not in the attachment, then the source is posted somewhere earlier in the thread.Iirc he removed it because the source he posted didn't even compile (he added some lines to check if people even used the source)

Two posts above is a .dll