SRL Archive - News and General

Concerning the new SMART reflection/GetField routines


Wanted

2008-07-17 19:43:21

From: IceFire908
Sorry to double post, but I don't think people fully understand what we can accomplish here.

We're talking the best runescape autoing device ever made, reflection style Java backed up with the best color based functions provided with SRL.

We have the opportunity to be better than NeXuS, RSBot, or any other macroing software ever was or will be.

Consider this seriously.

Thanks

-IceFire.


———————————————

Hello fellow SRL leecher/user/member/staff/admin(s),

Introduction


Very recently, it has come to my concern and attention that the recent release of S.M.A.R.T. does in fact enable the user to access GetField functions that allow the user to grab hooks whilst using SMART, this method is also widely known as reflection. And as we all know, reflection is the same method used in the once working and powerful KYAB, and as well all know these methods are very powerful and can be very dangerous in the wrong hands or the just plain ignorant. Such methods can cause an entire community to adapt and evolve in a dangerous way unless it is treated with great caution.

The reason I am speaking to you now, is to introduce my method of "great caution". I would like to begin by describing what exactly we are dealing with.

We are dealing with an extremely reliable resource known as reflection which uses Java to read (not modify, hence the undetectability) the RuneScape client and return information that is available in fields encoded in the game's "inner workings" (Java) all kinds of information is readily available to be retrieved given you have the current hook for the field. Such information ranges from global RuneScape position, to near by NPC locations, to player stats and player names, just about anything you can imagine. (Here is a paste bin that includes a brief idea http://widget.pastebin.com/f716f7a6c) Now with this information we can get screen coordinates to use in SCAR to create very accurate, fast, and reliable functions for walking/banking/locating ect… One main problem is that these hooks often break and are somewhat hard to obtain unless you are really good at java. Thus creating a dependency on a hand full of people in the community that could leave and screw us over leaving us very insecure as a community due to our new scripters only knowing how to script with reflection and experienced scripters becoming lazy and/or forgetting the old SCAR-fashioned way of color detection. A second problem is that during down time, we could experience complete autoing outages. A third problem is that we could become just plain stupid as a community, as for everything is so easy to accomplish, all we have to do is record a few numbers put them in a script and BAM! presto! instant reliable script! No challenge, intellectually or competitively. Very very boring.

Now you're probably thinking something along the lines of - "WOW, THIS IS GREAT! But I don't want to see SRL get fucked over by the downsides :(!"

So with out further-ado I propose to you my method of "great caution".
My proposal


We have several main problems now right?
  1. Depending on one person to update the stuff we need for hooks and getting them.
  2. Ignorance. People becoming stupid.
  3. Competition.
  4. Challenge as a scripter. Intellectually and competitively.

Here I pose the immediate solution to all of these problems!

First thing is first, we must never forget old-Fashioned SCAR style. This means scripts still must use SRL basic functions and advanced ones too, but this is dumb?

How do we use the new reflection methods whilst using the old-Fashioned SCAR style ones?

The answer is very very simple.

FAIL SAFES!


Study the shortened example directly below very carefully.

begin
if (not (LoggedIn)) then
Exit;
if (not (WalkToTile(1459, 5954))) then //Tile walking, Most relaible.
begin
WriteLn('Tile walking failed, switching to DDTM detection.');
if (not (FindDTMRotated(DDTM, ....))) then //DDTM, 2nd most relaible.
begin
WriteLn('DDTM detection failed! switching to DTM detection...');
if (not (FindDTMRotated(DTM ....))) then //DTM with tol, 3rd most relaible
begin
WriteLn('DTM detection failed! switching to Symbol detection...');
if (not (FindSymbol('Bank'...))) then //Symbol, 4th most relaible.
begin
WriteLn('Symbol detection failed! switching to map angle detection...');
if (not (AngleWalk(90, 50...))) then //Angle walk, 5th. Fails when angle detection fails.
begin
WriteLn('Map angle detection failed! Blind clicking...');
{--------------------------------}
WalkTo(585, 42); //Blind Click, never fails but is risky.
{if (not (WalkTo(585, 42))) then
begin
WriteLn('Blind click failed! All fail safes exhausted!');
WriteLn('Logging out player...');
LogOut;
Exit;
end
else
begin
WriteLn('Blind click successful!');
WalkTo(585, 42);
end;}
end
else
WriteLn('Map angle detection successful!');
end
else
begin
WriteLn('Symbol detection successful!');
WalkTo(Bank);
end;
end
else
begin
WriteLn('DTM detection successful!');
WalkTo(Bank.MM);
end;
end
else
begin
WriteLn('DDTM detection successful!');
WalkTo(Bank.MM);
end;
end
else
WriteLn('Tile walking successful!');
if (not (OpenBankReflection('FEB'))) then
begin
WriteLn('Bank detection by reflection failed! switching to color detection...');
if (not (OpenBankFast('FEB'))) then
begin
WriteLn('Color detection failed! All fail safes exhausted!');
LogOut;
Exit;
end
else
WriteLn('Color detection successful!');
end
else
WriteLn('Reflection detection successful!');
WriteLn('Opened bank!');
end;

As you can see, the script has several fail safes lined up in order from most reliable to least reliable and finally logging out switching players/ ending the script ect… Now I'm not saying you have to use this EXACT same example in your script but you get the general jist of it right?

This extensive fail-safe method eliminates a few things on our list already

1. The script does not DEPEND on any of the reflection methods.
2. You are still challenged as a scripter, intellectually and working wise. (if anything you are CHALLENGED MORE!)
3. We still use our old fashioned SCAR/SRL stuff.

Now you're probably wondering… how is this ever going to catch on people are way to damn lazy?

They'll just make there scripts depend on reflection anyway to save time because they don't care and just use WalkToTile over and over again because they don't think they need failsafes because reflection is so reliable even though it really isn't.

And I have but one word for you.

Competition


Anyone could go and make a shitty "failsafe-less" script that depends on reflection but once there is a few high quality multi-fail safe scripts out there that everyone uses that's kicks ass and one that everyone uses. There will be competition to make a better script with better fail safes, better reflection methods, better color detection. Thus competition ultimately keeping SRL from getting fucked over by these new methods.

Bottom line:

Everyone is happy! Everyone wins!


What do you'll think of my proposal?

-IceFire

————————————

From: IceFire908
From: Hobbit
Hardly anyone knows about/knows how to use it


Fakawi disliked KYAB, as did I and many others, because…well lets compare it to drugs. Drugs take away sad feelings, or pain etc. So you want more, you never want to be sad again so you keep using. This creates the dependency on the drug.

As to KYAB. It made scripting "Easier and faster"
You could walk anywhere with a simple procedure that looks like thing.
begin
WalkToTile();
WalkToTile();
WalkToTile();
WalkToTile();
end;

No with the reflection it would be stuff like GetHook(); etc.
It would make it "Easier and faster"
BUT there is a downside. As IceFire clearly stated, hooks are not invincible, they do change/break. And if one breaks and the script is written on reflection alone, the script is screwed until the hook can be fixed. Which could take some time.

BUT if you add in "Old School" SCAR scripting in as fail safes, the script can keep running. Like a Semi-Truck, on the highway their tires pop all the time, but because they have so many they are able to keep going till the driver is able to stop and get it repaired.

Now you don't need 7 different failsafes like IceFire, but 2 or 3 will do.


Very much so, I also think reflection tutorials should be reserved for the intermediate/ advanced. Seeing as noobs could take full advantage of the laziness, although they'd get owned by hybrid fail-safe scripts :sasmokin:

mastaraymond

2008-07-17 19:47:24

Well, nice post.. But eh, no one is forced to use Reflection :). It's not like we all script in reflection right now :).

Wanted

2008-07-17 19:49:06

I think the proposal will work because it's a very good idea, and to put it simply… how could it possibly not work?

It's fool/full proof in my personal opinion.

-IceFire

Waddo

2008-07-17 19:54:40

. . .Erm


Now i wanted that to be my wholw post but then id get sent to the naught persons corner so why don't you tell us whats so bad about reflection (i have no idea what it is/how to use it =]

Esteban

2008-07-17 19:56:28

Wouldn't KYAB have been accepted by the people behind this forum and SRL if they liked this idea?

Wanted

2008-07-17 20:07:36

From: Esteban
Wouldn't KYAB have been accepted by the people behind this forum and SRL if they liked this idea?


Read the thread before you post.

Thanks.

From: Waddo
. . .Erm

Now i wanted that to be my wholw post but then id get sent to the naught persons corner so why don't you tell us whats so bad about reflection (i have no idea what it is/how to use it =]


Um, same? Read the above.

Thanks

King of Knives

2008-07-17 20:31:32

I think you're right in a few things.

First of them, being the fact that reflection can become dangerous in wrong hands. To be honest, I never thought of it that way.

I think reflections can be considered a new first-priority for stuff. Like TPA's "recently" got firstpriority (for some) in objectfinding.

And I couldn't agree more in the fact that we need to preserve oldschool SRL-methods. But I don't think it'll be that much of a problem.

-Knives

Hobbit

2008-07-17 20:46:51

From: mastaraymond
It's not like we all script in reflection right now :).

Hardly anyone knows about/knows how to use it

From: Esteban
Wouldn't KYAB have been accepted by the people behind this forum and SRL if they liked this idea?

Fakawi disliked KYAB, as did I and many others, because…well lets compare it to drugs. Drugs take away sad feelings, or pain etc. So you want more, you never want to be sad again so you keep using. This creates the dependency on the drug.

As to KYAB. It made scripting "Easier and faster"
You could walk anywhere with a simple procedure that looks like thing.
begin
WalkToTile();
WalkToTile();
WalkToTile();
WalkToTile();
end;

No with the reflection it would be stuff like GetHook(); etc.
It would make it "Easier and faster"
BUT there is a downside. As IceFire clearly stated, hooks are not invincible, they do change/break. And if one breaks and the script is written on reflection alone, the script is screwed until the hook can be fixed. Which could take some time.

BUT if you add in "Old School" SCAR scripting in as fail safes, the script can keep running. Like a Semi-Truck, on the highway their tires pop all the time, but because they have so many they are able to keep going till the driver is able to stop and get it repaired.

Now you don't need 7 different failsafes like IceFire, but 2 or 3 will do.

[-jesus-]

2008-07-17 20:50:51

Yarly, sounds good & btw to anyone who didn't know: Reflection has been in SMART since right around it was released to Members/just after :p

Wanted

2008-07-17 20:56:36

From: Hobbit
Hardly anyone knows about/knows how to use it


Fakawi disliked KYAB, as did I and many others, because…well lets compare it to drugs. Drugs take away sad feelings, or pain etc. So you want more, you never want to be sad again so you keep using. This creates the dependency on the drug.

As to KYAB. It made scripting "Easier and faster"
You could walk anywhere with a simple procedure that looks like thing.
begin
WalkToTile();
WalkToTile();
WalkToTile();
WalkToTile();
end;

No with the reflection it would be stuff like GetHook(); etc.
It would make it "Easier and faster"
BUT there is a downside. As IceFire clearly stated, hooks are not invincible, they do change/break. And if one breaks and the script is written on reflection alone, the script is screwed until the hook can be fixed. Which could take some time.

BUT if you add in "Old School" SCAR scripting in as fail safes, the script can keep running. Like a Semi-Truck, on the highway their tires pop all the time, but because they have so many they are able to keep going till the driver is able to stop and get it repaired.

Now you don't need 7 different failsafes like IceFire, but 2 or 3 will do.


Very much so, I also think reflection tutorials should be reserved for the intermediate/ advanced. Seeing as noobs could take full advantage of the laziness, although they'd get owned by hybrid fail-safe scripts :sasmokin:

P1nky

2008-07-17 21:51:16

Hell yes your a genius!!!!!!!!!!!!!!!!!!!!!!!!!!

thanks for explaining omg sounds better than alll lol rsbot/nexus :)

Wanted

2008-07-17 21:53:15

Sorry to double post, but I don't think people fully understand what we can accomplish here.

We're talking the best runescape autoing device ever made, reflection style Java backed up with the best color based functions provided with SRL.

We have the opportunity to be better than NeXuS, RSBot, or any other macroing software ever was or will be.

Consider this seriously.

Thanks

-IceFire.

Timer

2008-07-17 22:02:52

By the way, our reflection files are outdated… ;)

Wanted

2008-07-17 22:30:22

From: Timer
By the way, our reflection files are outdated… ;)


http://widget.pastebin.com/f716f7a6c

Those are up to date aren't they?

And oh-well, it's open sourced, the hooks can be updated by anyone at anytime.

Oh and you're going to have lots of fail safes so it shouldn't matter. ;)

Widget

2008-07-17 22:53:09

From: IceFire908
http://widget.pastebin.com/f716f7a6c

Those are up to date aren't they?

And oh-well, it's open sourced, the hooks can be updated by anyone at anytime.

Oh and you're going to have lots of fail safes so it shouldn't matter. ;)

Anyone who feels like it and knows how can update the scripts and update the hooks and give it to someone with access to whatever means of distribution we have (pastebin might be good for this)

Right now we depend on RSBot for the hooks, but since RSBot is very reliable, made by smart people, updates quickly, and has tons of hooks (see http://widget.pastebin.com/f47ea6ce7 for about half of what it can get [that doesn't include object stuff]).

Also, I'll be releasing a few tutorials on how to get hooks from RSBot, and maybe BenLand100 will make some tutorials on how we can make our own updaters :). If lots of people end up contributing, we could indeed become the best bot around.

Of course, things do break for at least a few hours between updates, but checking if it broke or not is as simple as (GetMyName=Players[CurrentPlayer].Name) (checks reflection vs. actual player, if they don't match, it's because the reflection half is broken). Any good reliable script should have color failsafes for everything (ex. if not OpenBankReflection('veb') then if not OpenBankQuiet('veb',false) then if not OpenBank('veb',false,'n') then, etc). This applies both ways, if autocolors break, Tile Walking is there to save us. If tiles break, RadialRoadWalking/DDTMs are there to save us. :)

Plus the main thing I like about reflection is it's ability to find NPCs, SCAR/SRL has plenty of problems when an NPC is standing inside a character (like Aubury for the Essence mine).


Edit: Looks like Pastebin's down, so I'll put this here:
New paths: 7-17-08

TYPE Character:
- int[] getLocationY: E
- int[] getLocationX: G
- RSString getMessage: Eb
- int getAnimation: cb
- int isMoving: pb
- int getX: Q
- int getY: Bb
- int getHPRatio: ka.g
- int getLoopCycleStatus: qb
- int getHeight: y
- int getInteracting: V
- int getTurnDirection: S

TYPE Player extends Character:
- Model getModel: Qb
- RSString getName: uc
- short getPkHeadIcon: cc
- short getPrayerHeadIcon: yc
- short getTeam: cc
- int getLevel: mc

TYPE NPC extends Character:
- NPCDef getNPCDef: Nb

TYPE NPCDef:
- RSString[] getActions: e
- RSString getName: V
- int getType: j

TYPE RSString:
- int getLength: q
- byte[] getBytes: B
- int getHash: J
- boolean isEditable: R

int[] getNPCIndexArray: cf.c
NPC[] getNPCArray: gj.o
int getNPCCount: qi.h
int[] getPlayerIndexArray: sf.K
Player[] getPlayerArray: fg.h
int getPlayerCount: li.h
int getBaseX: pa.e
Player getMyPlayer: th.u
int getBaseY: rb.D
int getPublicChatMode: cf.h
int getLoopCycle: lg.a
int getSelfInteracting: ua.v
int[][][] getGroundIntArray: lh.N
byte[][][] getGroundByteArray: ad.P
int getPlane: bc.f
int getCamPosX: ph.j
int getCamPosY: bb.y
int getCamPosZ: bi.w
int getCameraCurveY: sh.N
int getCameraCurveX: pi.E
boolean[] getValidInterfaceArray: ue.a
RSString getCurrentPassword: lh.fb
RSString getCurrentUsername: lh.gb
int getIdleTime: ng.z
Keyboard getKeyboard: hg.P
Mouse getMouse: pb.a
Interface[][] getInterfaceCache: uj.D
int getMouseX: r.M
int getMouseY: qc.J
int getMousePressX: dk.x
int getMousePressY: mh.S
int getMousePressButton: ae.z
int getMousePressLastButton: la.C
long getMousePressTime: s.e
int getLoginIndex: tj.K
int[] getSettingArray: ki.c
Ground[][][] getGroundArray: g.fb
int[] getSkillExperiencesMax: ih.b
int[] getSkillLevelMaxes: hk.e
int[] getSkillLevels: fd.eb
int[] getSkillExperiences: e.n
int getMinimapInt3: jb.eb
int[] getCURVECOS: ah.h
int[] getCURVESIN: ah.f
int getMinimapInt2: fa.m
int getMinimapInt1: oj.p
NodeList[][][] getNodeListArray: vh.d
RSString[] getChatMessages: tg.V
RSString[] getChatNames: mc.P
int[] getChatTypes: kh.j
int getMenuOptionsCount: je.lb
boolean isMenuOpen: bg.l
int getMenuX: bi.v
int getMenuY: nc.b
RSString[] getMenuOptions: ae.i
RSString[] getMenuActions: vg.f
short[] getActionID: dc.s
long[] getActionCmd1: vj.b
int[] getActionCmd2: gj.f
int[] getActionCmd3: dg.o
Signlink getSignlink: ig.C
boolean isFlagged: fd.cb
boolean isSpellSelected: oc.ab
int getItemSelected: ri.r
RSString getSelectedItemName: uc.v
int spellUsableOn: bi.y
RSString getSelectedSpellName: pc.c
MRUNodes getItemDefMRUNodes: Z
boolean isMembers: sh.Q
MRUNodes getObjectDefMRUNodes: sh.M
Sprite getMinimapSprite: (Sprite)ei.a
Sprite[] getMapDots: (Sprite[])ai.g
long[] getFriendListAsLongs: g.M
int[] getFriendNodeIDs: me.o
int getFriendCount: ub.H
int getDestX: sc.Y
int getDestY: le.f
Sprite[] getMapMarkers: (Sprite[])fd.ab
int[][] getCost: ne.d
int[][] getVia: vi.W
GroundData[] getGroundDataArray: fa.g

Wanted

2008-07-17 22:57:42

From: Widget
Anyone who feels like it and knows how can update the scripts and update the hooks and give it to someone with access to whatever means of distribution we have (pastebin might be good for this)

Right now we depend on RSBot for the hooks, but since RSBot is very reliable, made by smart people, updates quickly, and has tons of hooks (see http://widget.pastebin.com/f47ea6ce7 for about half of what it can get [that doesn't include object stuff]).

Also, I'll be releasing a few tutorials on how to get hooks from RSBot, and maybe BenLand100 will make some tutorials on how we can make our own updaters :). If lots of people end up contributing, we could indeed become the best bot around.

Of course, things do break for at least a few hours between updates, but checking if it broke or not is as simple as (GetMyName=Players[CurrentPlayer].Name) (checks reflection vs. actual player, if they don't match, it's because the reflection half is broken). Any good reliable script should have color failsafes for everything (ex. if not OpenBankReflection('veb') then if not OpenBankQuiet('veb',false) then if not OpenBank('veb',false,'n') then, etc). This applies both ways, if autocolors break, Tile Walking is there to save us. If tiles break, RadialRoadWalking/DDTMs are there to save us. :)

Plus the main thing I like about reflection is it's ability to find NPCs, SCAR/SRL has plenty of problems when an NPC is standing inside a character (like Aubury for the Essence mine).


I've also been thinking a lot about the script being able to update the script during run-time by using GetPage and a data base server to download the updated scripts and "turn reflection back on" and during all this stall the script (make it wait) or keep it going using the color back up until the fix can be downloaded through GetPage.

Does that sound possible/good idea to you?

Widget

2008-07-17 23:03:47

Sounds incredibly hard to implement, but maybe we could get a second include going designed for that ;)

Also, I forgot to say that I think really good reflection scripts should be kept members-only. Hardcore leechers can stick with RSBot and Nexus (mainly Nexus). That and right now SRL Member is basically a rank as we don't have many special scripts (or other special programs like SMART was for awhile :)).

Wanted

2008-07-17 23:27:15

From: Widget
Sounds incredibly hard to implement, but maybe we could get a second include going designed for that ;)

Also, I forgot to say that I think really good reflection scripts should be kept members-only. Hardcore leechers can stick with RSBot and Nexus (mainly Nexus). That and right now SRL Member is basically a rank as we don't have many special scripts (or other special programs like SMART was for awhile :)).


There needs to be at least some public hard core ones though to demonstrate to the public. Just like Wizzup?s as essence miner did with SRL.

And I don't think it'd be to hard to fix hooks during script run time really…

James | IceFire908 says:
If a hook is broken just do GetPage all the time until the GetPage is different than the pre-existing broken variable
Widget! says:
yeah
Widget! says:
first we need a reliable page that more than one person can update at any given time
James | IceFire908 says:
keep the script going with srl back up, and if players fail from getting lost use Tile walk to recover them

Ashur2Good

2008-07-18 00:04:59

Hmm, after reading the posts this does acctually seem like a good idea!

The post talking about using SRL's old methods still is an excellent idea.

I'm 100% for this, though i'm pretty sure someone's gonna make a post that's gonna change our minds…

-Ashur

Wanted

2008-07-18 00:07:29

From: Ashur2Good
I'm 100% for this, though i'm pretty sure someone's gonna make a post that's gonna change our minds…


Maybe, but I am 100% open for any opinions/ suggestions.

Post away!

Esteban

2008-07-18 00:35:24

From: IceFire908
Read the thread before you post.

Thanks.


Did. The thing you're wanting to do with SRL could of been done exactly the same with KYAB, and the admins didn't want KYAB.

Don't post "Read the thread before you post," you have no clue if the person did or not ;).

ss23

2008-07-18 00:45:29

Well I cant see too many reason why people would be against this.
If it stays in members only, then everyone who uses it would have to know how to script without reflection anyway.

Feel free to pm Widget or me or come on irc if you want to help develop reflection functions btw.

And, maybe this could be stickyd for awhile so everyone see/reads it :)

Wanted

2008-07-18 01:00:25

From: Esteban
Did. The thing you're wanting to do with SRL could of been done exactly the same with KYAB, and the admins didn't want KYAB.

Don't post "Read the thread before you post," you have no clue if the person did or not ;).


No it couldn't of. And if it could of, no one ever mentioned it.

From: ss23
And, maybe this could be stickyd for awhile so everyone see/reads it :)


That's unnecessary.

Hobbit

2008-07-18 01:17:40

From: Esteban
and the admins didn't want KYAB.


There are deeper more complicated reasons to every decision that the SRL staff makes. Whether you like it or understand it, there are always deeper reasons to it then what you see. This is a much different situation then KYAB on many levels, but similar on some. Though many more differences. And also the release to KYAB to the public was not at all well thought out.

Gu3st...

2008-07-18 02:37:23

Why are people against this?

It is a good idea! Just imagine what we can do then! Main header in RSCA: 'SCAR With SMART, Now the mest powerful?'.

P1nky

2008-07-18 02:47:40

like hobbit said there are inside reasons for this ?

mixster

2008-07-18 02:56:51

People are against it because of Scar's idea of being a colour finding macroer and separate from all the Java reflection bots. The problem with having the option, is that people will slowly fall into using hooks more and more until scripts are broken for months when Jagex updates rather than a few days. You can try all you want to convince them otherwise, but those who want to still will and those who don't will stick to scripting rather than reflection. I don't really see how hybrid scripts will become integrated, but I hope they are, though I still think we will see a divide in the community, eventually, between reflection scripters and colour scripters.

Edit: P1nky: That was only about KYAB, with the inside reasons being about the people there rather than just being like it.

Wizzup?

2008-07-18 04:00:28

The core (and skill, everything) of SRL/misc will as far as I am concerned, will not use Reflection. SRL will include a Hooks.scar and a Reflection.scar, so you can use it for certain stuff like Map Walking.

1. Depending on one person to update the stuff we need for hooks and getting them.
2. Ignorance. People becoming stupid.
3. Competition.
4. Challenge as a scripter. Intellectually and competitively.


  • What about an auto updater? It can be written in SCAR, at least the parsing can be, so you can use WriteFileString to write and update Hooks.scar…
  • Not true. I've made several reflection (for walking only) scripts, and it is quite a challenge to make a decent script that doesn't get you banned.
  • Competition? I don't see why Reflection leads to a greater competition.
  • It's still a big challenge to make scripts with Reflection. In fact, because you are now able to make walking a lot more stable, you will write scripts that you would normally never finish or would even think of writing. What about a Law Crafter, or a nature crafter using Gnome Gliders, or perhaps an Abyss Crafter? Anyone fancy a Rune Miner (and Banker!)?
  • Such scripts I have barely seen using plain SRL. Mainly because it too much work to make such a big walking. So I don't see a problem for scripts to become less challenging. If you feel Reflection makes it too easy, try making a more difficult script, I can think of so many nice scripts you can make now, which will still take a lot of skill.


<============== -2.01- Progress Report ===============>
Banked 151 Times
Crafted 4227 Laws.
Crafting 603 Laws per hour.
Made 1310370 Geepees.
Worked For 7 Hours, 0 Minutes and 25 Seconds
<=====================================================>


1 character, script is 890 lines. And I would not call it easy. Both writing the recommended methods for walking and using glories, changing glories and all the other stuff you have to watch.

EvilChicken!

2008-07-18 04:00:57

After reading all the post, I cannot state how impressed I really am.

Just.. Wow.

I would really love to contribute to this in some way.
Just. Anything possible.


From: mixster
People are against it because of Scar's idea of being a colour finding macroer and separate from all the Java reflection bots. The problem with having the option, is that people will slowly fall into using hooks more and more until scripts are broken for months when Jagex updates rather than a few days. You can try all you want to convince them otherwise, but those who want to still will and those who don't will stick to scripting rather than reflection. I don't really see how hybrid scripts will become integrated, but I hope they are, though I still think we will see a divide in the community, eventually, between reflection scripters and colour scripters.

Edit: P1nky: That was only about KYAB, with the inside reasons being about the people there rather than just being like it.


Scripts will NEVER be broken for months because of the colorfinding failsafes.

A smart scripter would be able to make one simple constant that would allow to disable reflection wheever it is down, and use what is to become 'old school procs/functions'.


Once again, this is really really great.

omg.


Edit: SB, I enjoyed reading every single letter of your post. Enourmous thanks to you.

Starblaster100

2008-07-18 04:13:18

Just so you all know, SCAR is going to change anyways….

From: Freddy1990

So, as I was saying before, the next version of SCAR was going to be so huge that it would jump to 3.20…
I've revised this, the next version of SCAR Divi will be 3.16 and it will be the last main version release.
The OCR will be removed and I will try to finish the ACA integration before the release.

You might think something like "wtf" right about now :p Well, there's a good reason, no I'm not quitting SCAR, I'm shifting the big plans back to where they came from… SCAR Divi 4, codename Phoenix. As you might remember, SCAR Divi 4 as announced is a complete rewrite, if my estimate is correct probably about 95% will be rewritten from scratch for sure, well, give or take a few of my best functions… It will not only improve SCAR in many way, it will reinvent SCAR, change the fundamental idea of what SCAR is… And rid it of it's reputation as just a runescape macroing tool.

So here's the deal… I'm turning 18 in 2 weeks give or take a day and when I do I will be able to get myself a paypal account, meaning I will be able to accept donations… When I do if SCAR 3.16 has already been released I will issue SCAR 3.16b with bugfixes from 3.16 and a donations button… Now, why am I telling you all this… SCAR Divi 4 is supposed to feature a whole new bunch of upgrades to about every part of the GUI, unfortunatly I can't do this without using expensive pay components, free components just don't cut it anymore… And well, I'm investing a lot of time in the development, I hope you all understand I can't go invest money in it as well, seeing it doesn't actually make me any… So to get these components I will need people to donate a bit, I'm sure combining all those bits will be more than sufficient to get some of these components…

Now that's all nice and well, but what exactly do I get out of those donations you might ask? Well, for example, SCAR would feature coding in a codegear rad like environment, this means it will have codefolding, synchronised editing such as in this example: http://excessive.files.wordpress.com/2007/06/syncedit.gif and much more… It would also feature a new form editor, way better than the one SCAR currently has which is atm the only component I ever bought for SCAR, took the ads months to get me my money back :P And tbh I don't really like the current form editor that much… And more pretty stuff like that… However, that's not all… Currently I can keep my site running because I have ads, people click those so I get enough money to pay my site's monthly servercost, however, at the moment the site doesn't even generate enough for a serverupgrade, its just sufficient to keep my current plan, which is why I need people to come here to download new versions of SCAR. Now if people donate, I wouldn't need to rely solely on my ads to pay off my site so I wouldn't technically need people to come here to download SCAR at every upgrade anymore, so I could write an auto-updater for SCAR which is again, a convenience for you guys… :) I started working on SCAR Divi 4 almost a year ago, and I've never been able to continue because I need to implement components I don't have :P

Another for SCAR Divi 4 is for example an includes system that works like firefox extensions, I was almost finished writing a packaging tool for that, my site would have a whole online management system that would allow people to add their includes so they can be verified and stuff, also svn links and stuff, while for the regular includes download they would be able to host the files themselves, or I'd host them, haven't really figured that out completely :P And of course the OCR will be in SCAR Divi 4, and hopefully it's finished by then seeing it's only partially finished now :P

You must understand though, SCAR Divi 4 will take more than a couple of months to complete, it will require a whole lot of work and testing… I will probably be releasing beta versions and possibly even alpha versions…

I have been experimenting with implementing global variable initialization into the script engine, but unfortunatly it will require a lot more work and time before I can finish that, if it's even possible as it doesn't look good at the moment…

Current bugfixes for SCAR 3.16:
 - FindColorsTolerance always returned false when using Tolerance 0
- Bad Char: SmallChars #55
- Capitalize errored for an empty string
- ReplaceRegex malfunctioned when replacing a matched string with a string that could be matched
- The String To Picture tool didn't work for the newest bitmapstrings
- [#4] Minimized windowsizes weren't saved when SCAR was closed maximized
- [#17] Mousebutton functions were off a pixel on each axis
- [#5, #7] Code proposal wasn't shown for local variables in functions
- [#1, #12] There were some bugs in the functionlist parser
- [#18] Code proposal didn't show a type for variables in records, declared as dynamic or static array
- [#8] Code hints didn't work properly for class properties
- Scriptsettings were not saved and loaded correctly by the portable version

The fixes with [#number] infront of them are fixes of bugs that are logged in the bugtracker The number indicates the entry in the tracker.

SCAR Divi 3.16 is currently still in the alpha stages though, as soon as I fix some bugs that have sneaked in and remove the ocr and reimplement the old ocr I will move it up to the beta stages. I hope you all like this idea, I could of course still revise it, but it seemed the best way to go to me…

BTW: If you have any more bugs to report, now would be a good time…

EDIT: I've released SCAR Divi 3.16 Beta 1 to the testing team, moving on to integrate ACA :)


SCAR is moving away from what it once was, and Jagex are moving away from what they once were. By keeping SRL exactly the same, soon we will be using medieval methods in the nano age.

I to was once against reflection, and that's because I know how easily it can break, and I didn't want to see one RuneScape update break SRL completely.

However, the developers have decided a few things:
  • SRL will primarily stay color based.
  • Do not rely solely on reflection in your scripts. This will not be seen as good scripting methods.
  • If you use reflection as a tool in your scripts, as IceFire said, you must include failsafes with the usual methods in your scripts, so that if reflection does fail, all of our scripts will not crumple completely.
  • Applicants who want to apply for SRL members will still have to show us that they can use the usual color methods in a script. Reflection scripts will not be accepted.

Personally, I would design scripts as if they were without reflection, and then move those methods to the failsafes and use reflection as my primary method. Shoddy failsafes in scripts will be seen as laziness and will be looked down a pon. Do not rely solely on reflection! See it more of a tool in macroing instead of our primary method.

Starblaster100

The Claw

2008-07-18 04:50:44

Reflection can be easily broken and its not guaranteed that it will be constantly updated by someone (hooks etc) so remember to use it more as an extra feature than relying on it. In places where you can use colour and it would be just as accurate, use colour :)

Widget

2008-07-18 05:25:32

From: The Claw
Reflection can be easily broken and its not guaranteed that it will be constantly updated by someone (hooks etc) so remember to use it more as an extra feature than relying on it. In places where you can use colour and it would be just as accurate, use colour :)

But for now no one can see RSBot dying for awhile, and since SRL is now for reflection (at least somewhat), I'm sure that someone like Ben (*wink wink*) will write an updater as a backup :)

The Claw

2008-07-18 05:58:37

Actually, hes already said he wont be maintaining it, and hasn't for over 6 months lol. There's people here who know what to do, but its just a matter of if they'll be willing to lol

BobboHobbo

2008-07-18 06:19:15

As i read the whole thread, its like WOW, reflection much ftw BUT i dont get why wouldnt you use failsafes, but i do understand how not to use 100% reflection, If Reflection is more accurate and faster so be it use it but dont abuse it.

mastaraymond

2008-07-18 06:25:54

The big difference between KYAB and SMART (now) is that you cannot earn Real Life Moneys, $$, with RS anymore. So reflection scripts can basically extend our scripts. Make em more reliable, faster and way more advanced.

TheGuyWhoGotOn

2008-07-18 12:16:39

Great idea, I would love to see this used. I think it would work because how could it not? It still has all the same challenges with failsafes involved and no one would have to use reflection…Lets just hope it doesn't break for a very long time kike KYAB.

If we don't commit we shouldn't even try.

Wanted

2008-07-18 16:03:48

From: Starblaster100
Just so you all know, SCAR is going to change anyways….



SCAR is moving away from what it once was, and Jagex are moving away from what they once were. By keeping SRL exactly the same, soon we will be using medieval methods in the nano age.

I to was once against reflection, and that's because I know how easily it can break, and I didn't want to see one RuneScape update break SRL completely.

However, the developers have decided a few things:
  • SRL will primarily stay color based.
  • Do not rely solely on reflection in your scripts. This will not be seen as good scripting methods.
  • If you use reflection as a tool in your scripts, as IceFire said, you must include failsafes with the usual methods in your scripts, so that if reflection does fail, all of our scripts will not crumple completely.
  • Applicants who want to apply for SRL members will still have to show us that they can use the usual color methods in a script. Reflection scripts will not be accepted.

Personally, I would design scripts as if they were without reflection, and then move those methods to the failsafes and use reflection as my primary method. Shoddy failsafes in scripts will be seen as laziness and will be looked down a pon. Do not rely solely on reflection! See it more of a tool in macroing instead of our primary method.

Starblaster100


Very good advice/ suggestion/ whatever you want to call it.

Scripts should be made fully stable with entirely color based functions before moving them down to fail safes below reflection on the priority list.

SRL should stay completely color based.

Laziness will be looked down upon, and HOPEFULLY competition will drive us away from laziness/ half-baked failsafes/ and push us into advancement.

——————–

Why SCAR will be kickass:

Scripting is just the same good simple pascal/delphi base it's always been.
Minimizable/multi built-in client.
Combining new school with old school. Preserving the past and expanding the future.
This community, which is the best around giving it's near full support :)
And many many other reasons…

BenLand100

2008-07-22 00:32:05

The most important part of any scheme, that will resolve any issues with reflection being unstable, is making sure that the people that use reflection know what they are doing, not just taking it for granted that it works. It has been the custom since java bots came into existence to write an automated updater, and anything automated is prone to breaking. Its not so much that hooks "break" but rather that some small things change that confuses the updater preventing it from working. That being said, it is just as effective to update by hand as it is to update with an updater because the amount of time you invest into fixing the updater more than equals the time you would spend looking for hooks if you know what you are looking for.

In the interest of forcing people to learn what they are doing, I made SMART's reflection clearly visible in Scar's pascal code. It is NOT like KYAB where you called GetMyPos and took it for granted that it returned your position. There is NOT a "GetMyPos" method in SMART, only methods to access fields in the client. You as a scripter must use your knowledge to make a method that can return your position. I have given some basic functionality to the dev team, as well as to other individuals, in order to give you all a base to work on, but it is important as a learning experience to do it yourselves and know what you are doing.

My advice to anyone who is going to develop reflection: Learn java/bytecode, get a bytecode viewer, a decompiler, find a working bot, and look at how it gets what it needs from the client. Most importantly, look for ways to find the fields you need in such a way as to be independent of names. All that really changes from one release to the next is the names and manner of obfuscation, most releases of RuneScape change little to nothing in the actual game code.

GoF

2008-07-22 09:16:50

Rep++, great post.

E: I don't feel like taking part in any debates, so I'll just watch how this situation "evolves".. SMART is a quite vital part of SRL these days though, so I doubt it'll have the same thing happen to it than KYAB.. I see that as a neat add-on to SMART for people that know how to use it, and it'll possibly even teach other stuff about RS cheating too.. Who knows :D

Waddo

2008-07-22 09:29:31

Possibly Reflection tutorials for Members plus, we want applications to be using SRL not reflection.

Wanted

2008-07-22 22:45:37

From: Waddo
Possibly Reflection tutorials for Members plus, we want applications to be using SRL not reflection.


Correct.

Appliances that are not hybrid (reflection w/ 100% back up) or strictly SRL should be denied.

mastaraymond

2008-07-23 07:04:57

From: Waddo
Possibly Reflection tutorials for Members plus, we want applications to be using SRL not reflection.

Thats BS. I think that juniors have the same right on these tutorials. Applications will still be judged on the same way.. Wether the scripts are now 100% (with reflection) or 95% without, it doesn't make a difference..

GoF

2008-07-23 10:06:06

From: Waddo
Possibly Reflection tutorials for Members plus, we want applications to be using SRL not reflection.


Why members? I think lower ranked people deserve to be able to use the same functions too..

I'd love to know and understand bytecode and whatnot but as far as I know it's quite complicated, plus that I have no clue where to even start.

n3ss3s

2008-07-23 10:20:42

I'd love to know and understand bytecode and whatnot but as far as I know it's quite complicated, plus that I have no clue where to even start.


If by that if you mean how to use SMART's reflection, ask around on IRC, Zeph neither knew a few days ago :)

Wanted

2008-07-23 10:38:16

From: mastaraymond
Thats BS. I think that juniors have the same right on these tutorials. Applications will still be judged on the same way.. Wether the scripts are now 100% (with reflection) or 95% without, it doesn't make a difference..


From: GoF
Why members? I think lower ranked people deserve to be able to use the same functions too..

I'd love to know and understand bytecode and whatnot but as far as I know it's quite complicated, plus that I have no clue where to even start.


Right, everyone should be allowed access to the tutorials, but member applications should still only accept 100% Failsafe enabled scripts or strictly SRL based.

To be put simply

True hybrid scripts could have a const such as

const
UseSMART = False;
UseReflection = False;

and still run 100% fine.

Claymore

2008-07-23 13:01:44

So, one question. How do you get the coords for the "Tiles" In the RS Screen. Use the eye dropper? =3

I can't use smart, but i can try coding by just using the RS Client itself….

TheGuyWhoGotOn

2008-07-23 13:10:08

From: deathscytex
So, one question. How do you get the coords for the "Tiles" In the RS Screen. Use the eye dropper? =3

I can't use smart, but i can try coding by just using the RS Client itself….


Lmao no SCAR is moving away from being RS specific not closer. It's probably something in the dll…

Wanted

2008-07-23 15:20:24

From: deathscytex
So, one question. How do you get the coords for the "Tiles" In the RS Screen. Use the eye dropper? =3

I can't use smart, but i can try coding by just using the RS Client itself….


You get tiles by standing on or near the tile you're looking for and using GetMyPos with WriteLn and then determine where the tile your looking for is.

Claymore

2008-07-23 15:54:16

Thanks! Ill try it out as soon as possible…

Wanted

2008-07-23 18:40:48

You know there's also

MSToTile and MMToTile.

Claymore

2008-07-23 20:09:43

ROFL! That reminded me on my first try… Heres what i did when i looked at the Reflection.scar

procedure Find;
MMToTile(670, 24, x, y);
WriteLn('X := '+IntToStr(X)+' and Y := 'IntToStr(T));
end;

and my results were..i forgot… 3000, 2900?

And im like 0.o' Ok, backing up….

NiCbaZ

2008-07-23 22:06:02

From: deathscytex
ROFL! That reminded me on my first try… Heres what i did when i looked at the Reflection.scar

procedure Find;
MMToTile(670, 24, x, y);
WriteLn('X := '+IntToStr(X)+' and Y := 'IntToStr(T));
end;

and my results were..i forgot… 3000, 2900?

And im like 0.o' Ok, backing up….


you did it woring if you want to make a findind procedure with MMToTILE you have to do it different

P1nky

2008-07-24 02:44:43

write a tut please btw mastaraymond is right…

advance tut sect?

NiCbaZ

2008-07-24 02:49:26

From: P1NKY
write a tut please btw mastaraymond is right…

advance tut sect?


a tut on how to use the current functions or use it to walk? because just how to use would be in beginners tut… writing functions you need to read benlands post :)

TheGuyWhoGotOn

2008-07-24 20:06:01

From: NiCbaZ
a tut on how to use the current functions or use it to walk? because just how to use would be in beginners tut… writing functions you need to read benlands post :)


Huh there is a post on writing functions for reflection? Too late XD. Oh well…

I don't think tutorials should be necessary for walking…Well I guess if you wanted to walk paths…Fine then I'll make a function for that.

The easiest way to walk though is just "WalkToTile(2334, 2334);" you could build a path like that.

Edit: Never mind Path walking is done.

Widget

2008-07-25 02:43:11

Check my post in the SRL Development section if you're brand new to reflection. I made some crappy rushed video tuts there. :) (Also newest version of reflection.scar goes there)

NiCbaZ

2008-07-25 02:47:50

From: Widget
Check my post in the SRL Development section if you're brand new to reflection. I made some crappy rushed video tuts there. :) (Also newest version of reflection.scar goes there)


add my nobbie function on post number 2 on that thread i want my name in there lol.

ShowerThoughts

2008-07-25 12:10:34

From: [-jesus-]
Yarly, sounds good & btw to anyone who didn't know: Reflection has been in SMART since right around it was released to Members/just after :p


Lol, didn't know thanks :p

Waddo

2008-07-25 14:36:39

The rank is SRL Members not reflection members I didnt mean tuts for srl members I was a bit out of it i meant the tuts for SRL jnr. so that then when they first start scripting they learn scar and srl instead of just reflection.
We can not allow members in using reflection because of the simple rule it must be SRL compliant it must use the basic srl functions.

GoF

2008-07-26 13:10:50

From: Waddo
The rank is SRL Members not reflection members I didnt mean tuts for srl members I was a bit out of it i meant the tuts for SRL jnr. so that then when they first start scripting they learn scar and srl instead of just reflection.
We can not allow members in using reflection because of the simple rule it must be SRL compliant it must use the basic srl functions.


What's the point if it's clearly stated they won't get in members with just reflection? They'd have to learn the other stuff too :)

PvH

2008-07-26 14:47:14

I discussed this with a lot of people on msn.
I readed trough this 3 pages.
IMO we should use this for antirandoms.
Think about it, solving mordaut (schoolrandom) easily with this:o
Also, I think tutorials should be for every rank in srl, we all deserve it.
We are not different that registered users. We just have some more scripting knowledge, but they still need to learn.
But, IMO, srl member applications shouldn't include reflection.scar
Those should based on srl as it was.
We should back up scripts with normal scripting.

I think that reflection is a great addition to scar/srl.
This won't mean that we should lose the rest!
I agree with Wizzup?, scripting can still be a competition.
Rimmington yew cutters, quest runners and other examples.
Think about it!?
We could use reflection (backed up with the scripting as it is now) for long distance walks, than do some things at that place with tpa's or other ways for object finding (eventually with reflection, though that won't be needed) than walk back with reflection (backed up with srl again) and repeat that.
We just improve the walking, we still have the old scripting and this could make srl indeed WAY BETTER! (yes, it is already awsome, but imagine, even better!).

That is just MY opinion.
IMO, reflection should be added aswell to srl and there should come more tutorials about it for everyone:)

PvH

Wanted

2008-07-26 17:24:23

From: PvH
IMO, reflection should be added aswell to srl


Most people highly disagree that reflection should be even touched from with SRL's main include, I also agree that it is not a good idea.

Color back up is there for a reason, if you go adding reflection to color back up then it isn't color back up, besides reflection is way to easy for it to even be needed to be added, all you need is \Misc\Reflection ect.. ect..

Hugolord

2008-07-27 17:23:07

I think its an excellent idea, a few months (?) ago I posted something to do with KYAB but this is a much better idea tbh, congratulations to IceFire!

Wanted

2008-07-27 19:20:04

From: Hugolord
congratulations to IceFire!


I don't understand why everyone is giving me so much credit for this, all I did was make a thread about how people should use fail safes along with their reflection routines.

Let's not forget those that made this all possible, hmm…?

Metagen

2008-07-28 12:54:09

Hmmmmm… *meditates* I have news for everyone… Lazyness sounds good to me.

Wanted

2008-07-28 13:10:18

From: Metagen
Hmmmmm… *meditates* I have news for everyone… Lazyness sounds good to me.


Laziness "sounds good" but is really a deadly flaw of human nature my friend…