Figured out, this messes with:
Common.scar
line 74
Whenever it does NickTPA.
Printable View
Figured out, this messes with:
Common.scar
line 74
Whenever it does NickTPA.
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.
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.
Out of interest, are there any randoms that currently can't be solved by SRL which could use some help by interception?
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?
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.
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.
Can you explain this further? I don't understand :o
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 ;)
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
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 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.Quote:
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.
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'."
Wow. Where did you get the idea of doing this. Amazng.
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. :)
What he said /\/\ :)
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 ?
He meant the pickaxe on the ground i believe?
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.
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.
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
Silentwolf, Rocks/ores arent working yet are they?
blah
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.
plugin
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.
Just because they could detect scar is open, they have no proof it would be running a script on runescape.
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?
:o
:o
:)
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.....
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.
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
SCAR Code: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
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.PHP Code:|----------------------------|
| | |
| | |
| (103) | (105) |
| | |
|--------------|-------------|
| CHARACTER | |
| (106) | (104) |
| | |
|----------------------------|
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.
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 thisSCAR Code: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;
You could also check if at least 15 tiles match, etc. etc.SCAR Code:World2DArray := GetDraynor;
World2DArray := GetVarrock;
-------------------------------------
Does this sound like too big project?