SRL Archive - RS has been updated.

OFFICIAL Social Slayer/SMART Not Working Thread


YoHoJo

2012-07-11 07:07:14

For the brave, ghetto fix here:
http://villavu.com/forum/showpost.php?p=1070137&postcount=752


Made this to stop all of the spam.
Please report all threads about this and post/link them to this one.


The Jagex Update:
Social Slayer:
http://services.runescape.com/m=news/social-slayer--gielinor-games-preparation

How it effects us:
SMART is no longer loading the RS Client properly, from what I've seen it should be an easy fix, just sit tight and be patient.

Also, as usual, a big update also=a big fail on Jagex's part.
Many items in bank/inventory are very deformed:


How to Fix:
If you do not know what you're doing: Don't spam this thread. Don't ask how to fix it.
All developers work FOR FREE and ON THEIR OWN TIME. There is no ETA so just wait patiently.



The developers and coders are working on fixes as hard/fast as they can.
When a fix is made, the update will either be rolled out automatically, or a big obvious thread will be made and you will see it.



Master BAW

2012-07-11 07:11:18

Okay, will this be fixed today? Seems not too hard is it? Only change the size of the SMART and add about 60pixels to all height-coördinates?

Megahit

2012-07-11 07:15:19

Is this the Optimus? LOL
Ok it probably isn't but i wonder when is it coming. Firstly was said end of June, then in beginning of July, what next?

YoHoJo

2012-07-11 07:15:38

I'm not sure but yea fix seems pretty easy to do, should take a day, but who knows.
And no, I highly doubt it's optimums.

dhun

2012-07-11 07:17:09

anyone else having this issue? ectovial invisible, runes look like crap ..

deadmess

2012-07-11 07:18:12

i bet it will get fixed today, maybe tomorrow shoul'nt be that bad, and for all the people freaking out right now, play yourself fs. its not that bad, use the bots when you have something else to do, but don't sit there and watch your bot botting, freaking out has no use..

white_lycan

2012-07-11 07:18:45

a lot of my items are invisible. a lot of the items in the first slot in every bank tab are invisible. as well as every item in my GE spots.

Er1k

2012-07-11 07:18:47

All scripts using SMART should be broken at the moment, and glitched item images can be found all over the place

This is Maple Logs.

And this Earth Runes.

Nice work, Jagex. I can now go play some of my downloaded games instead of botting my main :)

Master BAW

2012-07-11 07:19:58

From: dhun
anyone else having this issue? ectovial invisible, runes look like crap ..


^i have this issue too. With noted items , the noted thing gets empty :p

deadmess

2012-07-11 07:21:25

And no this isn't "Optimus", I think they'll have their hands full with that Combat Beta to even launch this autobot. Clearly mods use bots themselves (for exploiting like they just did) and figured out adding a toolbar could give most bots some problems. I've read on the runescape forum a player asking the same question about Optimus and a mod replied: "soon very soooooon"

chuckyb0y

2012-07-11 07:21:56

The normal runescape client has the same problem :)
so i guess jagex needs to fix this themselfs.

did anyone try delete cache ?

fire_burn_00

2012-07-11 07:22:02

You know… I don't hate Jagex or anything… But like wow…

Shatterhand

2012-07-11 07:24:32

Haha this is pre-optimus! :D

MotorMouse

2012-07-11 07:24:54

I got this problem:

John

2012-07-11 07:26:24

MOTHER OF…

speedypetey

2012-07-11 07:26:55

:( and in other news…
http://services.runescape.com/m=forum/sl=0/forums.ws?14,15,388,63867519

Master BAW

2012-07-11 07:26:58

Or it is optimus lol, how can you know? maybe optimus is something we cannot see. ;) (detecting systems for example)

HeroOfSinnoh

2012-07-11 07:27:21

Just a taste for us to see how glitched items would look when the real optimus comes.

Gj Jagex.
Gj.

Batman

2012-07-11 07:29:32

Wow. Just, wow. They put in a crappy looking toolbar and basically punched holes out of most of the items in the game… If this is a glitch then LMAO. If this is intentional then they should fire the moron that came up with this idea hahaa
(For the record I legit a lot and this is just taking the pee… Super defence's are totally see through for me lol)

Master BAW

2012-07-11 07:29:53

Is there something known about this in the RS forums? did the mods tell something already?

deadmess

2012-07-11 07:31:09

My bot was still "working" tho so I can't say this would be the Optimus also one of the mods said it will be released soon. not now but soon.

Master BAW

2012-07-11 07:35:06


Okay, this cannot be optimus… Some items become invisible :S

beats-

2012-07-11 07:38:39

Lol the thread is full of activity.

Deus

2012-07-11 07:39:21

Yeah looks like Jagex screwed up more than a few things even using the regular client.

Justin

2012-07-11 07:39:35

Get off safemode and your items are fixed..


YoHoJo

2012-07-11 07:39:53

:D

Haag

2012-07-11 07:40:59

roll out an update soon :(

arti

2012-07-11 07:41:09

I like how Im light green… havent been here in a while.

Jeroen

2012-07-11 07:41:39

LOL if this is optimus XD
Good to hear it can be easily fixed.

deadmess

2012-07-11 07:47:01

they allso added a new dungeon route in the f2p edgeville dungeon you can walk halfway through suddenly glasswall! so its not only and item problem meh its vacation i guess they are having some baad job students!

HeroOfSinnoh

2012-07-11 07:51:20

The "bar" is causing a hella lot of commotion over at RS Forums.

http://services.runescape.com/m=forum/sl=0/forums.ws?15,16,132,63868963,goto,2

Jeroen

2012-07-11 07:53:08

Bahahaha
The red dot is the other guy.

kwiken

2012-07-11 07:53:09

Jagex tried to scam me. I bought a dragon hatchet, grand exchange took my money and i didnt receive my hatchet. I was about to cuss out my computer til i logged out and it magically showed up in my inventory.

FloppyWien3r

2012-07-11 07:53:28

Lots of mods posting on this thread…"Sorry its staying there, and you can suck a dick"

http://services.runescape.com/m=forum/sl=0/forums.ws?25,26,254,63868974,goto,2

ShadowsTM

2012-07-11 07:55:53

Wow… Might have to play legit for the first time in months.. Or just sleep, that's probably more interesting

deadmess

2012-07-11 07:57:46

the only fun thing i see is players at 1 PM: 110.000+ players after 1 PM: 50.000 i bot myself but that still are sad numbers :D

vaccinate

2012-07-11 07:59:38

Ugh. As sad as it sounds its actually quite depressing when jagex fuck up our clients or whatever :D

Danza99

2012-07-11 07:59:58

In other news, people on this post are using the social slayer update, target –> Jagex


A post from a player within a thread on the Runescape Forums, made me laugh a little ;)

Jos3ph

2012-07-11 08:20:15

Horrible timing for this too.

Leonardo Da Vinci

2012-07-11 08:25:18

From: YoHoJo
should take a day, but who knows.
And no, I highly doubt it's optimums.


Well, looks like seroquel and time travel for me!

Imanoobbot

2012-07-11 08:45:15

I am loading Runescape with the normal client and nearly all items or better the pictures are broken too. Fagex failed again.

Total

2012-07-11 08:51:24

Lol.


Anyone in safe mode has all their graphics glitched up…kinda funny.

deadmess

2012-07-11 08:59:38

the only thing i wonder about is when "SMART" is updated how will we know this? :P i'm pretty new to botting :D

sickle

2012-07-11 08:59:39

So does loading in non-safe mode fix the issue?

Justin

2012-07-11 09:02:18

Don't get too excited.

Austin

2012-07-11 09:03:11

RS is getting a system update in 30 minutes from now, let's see if they fix any of the problems

EDIT: Ok then, according to Mod Easty, the only problem they're fixing is a display name glitch…

thomas1116

2012-07-11 09:05:46

lol next tim u login the ur whole account will be invinsible x)
Time to slay some Fagex's

gooddiubro

2012-07-11 09:10:30

SMART and colour still works.
Its just some SRL functions are broken.

Andres

2012-07-11 09:14:13

From: HeroOfSinnoh
The "bar" is causing a hella lot of commotion over at RS Forums.

http://services.runescape.com/m=forum/sl=0/forums.ws?15,16,132,63868963,goto,2


Made me laugh.

Olly

2012-07-11 09:16:30

Yeah there's no way the item deforming isn't a glitch, seriously it will piss legiters off so much .

fire_burn_00

2012-07-11 09:17:37

They should do a mass update and fix everything they just screwed up… But it's Jagex…

Andres

2012-07-11 09:31:50

From: fire_burn_00
They should do a mass update and fix everything they just screwed up… But it's Jagex…


I feel like "…but it's Jagex" would be a good meme ;)

Benny

2012-07-11 09:37:50

From: [J]ustin
Get off safemode and your items are fixed..



nice bank ;P

Justin

2012-07-11 09:42:37

From: -Benny
nice bank ;P


I try :P

chuckyb0y

2012-07-11 09:42:50

so benland is the only one with the source?
so we need to wait…

Footy

2012-07-11 09:46:42

Do bots still work withount smart?

nokkasiili

2012-07-11 09:47:00

From: chuckyb0y
so benland is the only one with the source?
so we need to wait…


https://github.com/BenLand100/SMART :spongebob:

Jos3ph

2012-07-11 09:50:38

Time to sit back and wait for the storm to blow over…

At least I ran a script last night 5 1/2 hours so this time not running anything will act as a good 'break'

Master BAW

2012-07-11 09:53:37

From: po2n star
Time to sit back and wait for the storm to blow over…

At least I ran a script last night 5 1/2 hours so this time not running anything will act as a good 'break'


no it won't. the opposite.
if you did keep playing after this bot-breaking-update, they won't think you are a bot. if you stop playing after a bot-breaking-update THEN they think yoúre a bot :p

Footy

2012-07-11 09:53:51

One more question, are the co-ordinates going to change after the update? Im working on a script now, but if everythings gonna change, I dont see the point.

Andres

2012-07-11 09:57:15

From: MasterCrimez
no it won't. the opposite.
if you did keep playing after this bot-breaking-update, they won't think you are a bot. if you stop playing after a bot-breaking-update THEN they think yoúre a bot :p


There's like 70k fewer "players" online than usual. They're not going to flag everyone just because they didn't lag in after the update.

johnarnts

2012-07-11 09:59:23

Wow…

RSbotter1

2012-07-11 09:59:27

Maybbe will we have to convert to directx or opengl then?

klamse

2012-07-11 10:00:17

Does anyone think that they intentionally made some items like that only in safe mode because it could screw up color bots?
Just a wild guess, I could be totally wrong.

Edit: The update pushed out a couple minutes ago didn't fix the item glitch problem. :(

Jos3ph

2012-07-11 10:02:16

From: MasterCrimez
no it won't. the opposite.
if you did keep playing after this bot-breaking-update, they won't think you are a bot. if you stop playing after a bot-breaking-update THEN they think yoúre a bot :p


Hmmm great logic…but see the issue is I am at work right now so they cant hold it against me that I didn't come on and play while a bunch of chaotic hetic BS going on. I rather them fix the bugs and kinks and then I'll play.

RSbotter1

2012-07-11 10:02:45

Does anyone think that they intentionally made some items like that only in safe mode because it could screw up color bots?
Just a wild guess, I could be totally wrong.


Yeah i was thinking that, thats maybe why we must convert to gl / dirx?

arti

2012-07-11 10:05:36

^ Wouldnt happen due to the thousands of users who rely on safe mode.

bricks

2012-07-11 10:12:57

So i have to change from safemode into opengl or directx, only problem is when i try to it will not allow me. When will this be fixed :[?

Total

2012-07-11 10:29:46

Looks like its an actual bug. http://services.runescape.com/m=forum/c=WvTO7IdUe9I/forums.ws?25,26,411,63869465

But I guess clearing your cache might work, haven't tried it myself yet but there's a thread saying it works.

xDutch

2012-07-11 10:43:53

Jagex fixed it.

Mark

2012-07-11 11:19:26

Main screen coords are off messed up a script ive been writing these worked for me

MSX1 = 0;
MSY1 = 54;
MSX2 = 515;
MSY2 = 387;

Sin

2012-07-11 11:22:37

Me and Justin are having a helluva time slaying, blew through Mithril Dragons and Black Demons like they were nothing!

Kyle Undefined

2012-07-11 11:27:34

So are they FORCING people to use a different option than Safe Mode?

Foefoe

2012-07-11 11:32:28

Yup.

bricks

2012-07-11 11:32:38

From: Kyle Undefined
So are they FORCING people to use a different option than Safe Mode?


This is the case for me. I cannot change from any other option than safemode, and it does not work in safemode so yes you are correct.

Please fix D:

ggsus

2012-07-11 11:36:49

delete your jagex cache.. and reload runescape.. Thats what I did and it's perfect now..

one1988

2012-07-11 11:39:26

Thats what i did and it fixed my items on rs, its the official forum link.
If your skeptical of the link go to the Official forums under recent updates and check the top stickied thread a few posts down is where that Quote is suggested.

Hope it helps guys


http://services.runescape.com/m=forum/a=25/forums.ws?15,16,138,63869451

WINDOWS:

Copy the directories below into the address bar of My Computer and delete the files:

%HOMEDRIVE%\.jagex_cache_32
%WINDIR%\.jagex_cache_32
%USERPROFILE%\jagexcache\runescape\LIVE
%USERPROFILE%\.jagex_cache_32


MAC:

1. Choose Users > [INSERT USER HERE] > Library > Caches.
2. From the Menu bar, choose Edit > Select All.
3. Drag all of the items to the Trash.
4. From the Macintosh HD, choose Library > Caches.
5. Choose Edit > Select All, and drag the items to the Trash. You’ll be required to type in an administrator’s pass.
6. Restart your Mac.
7. Once restarted, use spotlight to locate the folder .jagex_cache_32 on your computer and delete it.


LINUX:

1. Open the terminal
2. Type in: rm -r ~/jagexcache

Kyle Undefined

2012-07-11 11:47:24

From: bricks
This is the case for me. I cannot change from any other option than safemode, and it does not work in safemode so yes you are correct.

Please fix D:


I only play on Safe Mode, because their HD version is horrible. Safe Mode FPS > any other version.

Master BAW

2012-07-11 11:51:39

Will there be a link in this forum when there is a fix for simba/SRL, or will it auto update? how does this work?

bricks

2012-07-11 12:05:23

From: Kyle Undefined
I only play on Safe Mode, because their HD version is horrible. Safe Mode FPS > any other version.


Ya, i have a lot of experience with tampering of settings for fps lol.
Can you please tell me when you think this will be fixed though or if there is anything I can edit in the code to help?

Jim

2012-07-11 12:13:44

Safe mode's always laggy for me, I always use opengl when I'm legiting, so I guess this won't affect me too much besides the whole botting thing.

Punjabi3

2012-07-11 12:31:07

I cleared my cache and the jagex cache and safe mode worked fine for me no items were invisible

Sin

2012-07-11 12:31:52

Use DirectX, it works fine.

Haag

2012-07-11 12:38:21

From: MasterCrimez
Will there be a link in this forum when there is a fix for simba/SRL, or will it auto update? how does this work?


Havin the same question

Austin

2012-07-11 12:41:22

From: Shay
Use DirectX, it works fine.

This.

ncore

2012-07-11 12:47:00

Also, notice there are normally around 180k people on around now. Now its at 120-130k people on. So either:

A. People hate the new display so much that they aren't playing
and/or
B. A lot of people normally use color bots right about now…

bricks

2012-07-11 12:47:52

When I attempt to use DirectX, OpenGl or even Software mode it says runescape cannot display them…Now the question remains when is the estimated time that this will be fixed, from what i've read it's a simple problem.

Jointz

2012-07-11 13:00:12

Ughh I tried using DirextX that did not work for me, -sad panda-

Sin

2012-07-11 13:03:36

In the RSClient, not Smart.

ShadowsTM

2012-07-11 13:05:54

Yeh My FPS Is horrible on safe mode. Direct X I get 25-30 FPS most of the time on full screen max settings

klamse

2012-07-11 13:20:05

From: MasterCrimez
Will there be a link in this forum when there is a fix for simba/SRL, or will it auto update? how does this work?


Can someone please answer this question? I'm curious about this too.
How will it be pushed out?

djborec

2012-07-11 13:23:53

Anyone know when will be SMART updated? Please? Powerbot is still working without problems..

bricks

2012-07-11 13:25:09

From: djborec
Anyone know when will be SMART updated? Please? Powerbot is still working without problems..


Not to sure about how powerbot works but I wouldn't use anything that is not ran off of color…more detectable I think.

ebmaj7

2012-07-11 13:28:13

I just discovered and got into this two days ago. What a bad time to start up eh?

Rezozo

2012-07-11 13:29:23

From: djborec
Anyone know when will be SMART updated? Please? Powerbot is still working without problems..


No word yet though I think its a minor problem, so a fix will come soon :)
Also, hopefully this will be an auto-update… :thumbsup:

(Never had the problem with the invisible/corrupt items…anyone else…?)

I am a little disappointed in Jagex, thought this was an upgrade… not a downgrade! :duh:

Justin

2012-07-11 13:31:33

From: klamse
Can someone please answer this question? I'm curious about this too.
How will it be pushed out?


Simba will auto-download the update. Just keep checking the box under where the script would normally go. Chances are there wont be a ETA.

djborec

2012-07-11 13:32:44

From: bricks
Not to sure about how powerbot works but I wouldn't use anything that is not ran off of color…more detectable I think.


All depends on script and library ,but well I use my own SIMBA script so I can know if it steals passwords if its detecable etc, but in PB you do not know it..

I just wanted to try if PB is still working because I wanted to know why there are again 120-130k players online and it seems like SIMBA is not very popular,as PB

Kasi

2012-07-11 13:42:49



Kyle Undefined

2012-07-11 13:48:28

Stop asking when there will be an update, repeating it over and over again won't make it happen any faster. Patience, it will come.

Jim

2012-07-11 13:50:44

From: pur3b100d



Should definitely be the new logo

bricks

2012-07-11 13:54:40

From: Kyle Undefined
Stop asking when there will be an update, repeating it over and over again won't make it happen any faster. Patience, it will come.


This is true, but what is the problem with asking more knowledgeable people when they think the problem will be fixed?

Kyle Undefined

2012-07-11 13:57:48

From: bricks
This is true, but what is the problem with asking more knowledgeable people when they think the problem will be fixed?


Because there is no ETA at this time, everyone who can fix it is busy with more important things (Work, school, etc). I'm fighting just to get a 30 minute break today, it's insane.

deadmess

2012-07-11 14:03:07

take your time sir, people should be happy some people put this up as a free service. once it goes down you hear 98% saying omg fix it but only 2% will say thanks when its up again, thats sad. powerbod is working tho and yeah i think 90% of the bots use powerbot, it was the first bot i knew aswell, nothing wrong with it i think, used it on my main back in the days to get 99 wc and 99 fishing :P, so its "good" but i like this client way more. once its up to date i instantly swap back. :D

Seinfeld

2012-07-11 14:08:12

wtf update plz

bricks

2012-07-11 14:13:17

From: Kyle Undefined
Because there is no ETA at this time, everyone who can fix it is busy with more important things (Work, school, etc). I'm fighting just to get a 30 minute break today, it's insane.



Thank you, and I apologize for being hostile…make sure your spending time with your families.

smurg

2012-07-11 14:26:46

Halp! Halp! My little chinese children are starving because I can't make any botted monies, they just want a biscuit.

People have day jobs, families, a life, etc. Updates don't come instantly even with paid software, it takes time.

Mister Snow

2012-07-11 14:32:55

From: smurg
Halp! Halp! My little chinese children are starving because I can't make any botted monies, they just want a biscuit.

People have day jobs, families, a life, etc. Updates don't come instantly even with paid software, it takes time.


Harrow Smurg :garfield:

So much for free. Incredible amounts of knowledge, SMART is totally free, scripting help is free, everything is kindly given to you…

Brandon

2012-07-11 14:58:53

Probably the worst fix I could think of but meh it's temporary I guess..

SMART\src\smart\client.java:


Line 120: int w = 765;
Line 121: int h = 565;
Line 546: After clientFrame.add(clientApplet); press enter and add: clientFrame.setPreferredSize(new Dimension(785, 615));
Simba stuff:
in SRL.Simba change SetTargetArray(SmartImageArray, 765, 503) to: SetTargetArray(SmartImageArray, 765, 565)

and if on Simba 0.99 change SmartParams.Simba to Result:= SmartSpawnClient('./Plugins/', Params[0], ',' + Params[1], 765, 565, 's', '', '', -1);

Only thing changed is basically the height. Iunno bout anything else. So if that's detectable Iunno but so far it works as far as I can tell.

Any other client hacking crap is not on my end. Iunno Java.

As for the shitty results.. It looks like this.. Note: Iunno any client stuff so I don't know if you can get rid of the bar. I'd expect someone who knows java to at least try something but guess everyone relies on Ben :S



speedster

2012-07-11 15:18:59

Can someone teach me how to properly get Simba use the newer version of Smart ?

krasniy

2012-07-11 15:45:09

From: Seinfeld
wtf update plz


Wow…you are kind of being disrespectable to the mods and scripters……

Either be patient or else try the bot at www.GoSomeWhereElse.com :duh:


lolkkkhaha

2012-07-11 15:46:04

^ Not out yet.

L00PH0LE

2012-07-11 15:56:32

Is it just me or does it seem with every update they always completely wreck RS? I wonder if the people at Jagex know how badly they fail.

speedster

2012-07-11 16:01:22

I was thinking on how to fix this , well besides Smart needing an update to fit the entire applet (and possibly only display the part of the applet that is of interest to us ) would be to fix the - Login function / World Hopping function and editing the pre-defined coordinate boxes to fit the part of the applet required for us: MSCX etc etc.

Now some functions might be broken (- the ones that do not use the pre-defined coordinates -) so those might need to be updated as well. As for the scripts using hard coded coordinates those will have to be updated accordingly to the specific script.

P1nky

2012-07-11 16:07:03

Goodness 63 users viewing this thread, also thought was my resolution or something haha :X

Main

2012-07-11 16:07:04

If any one wants smart removed from their script so it will work again, feel free to PM me.
I will only do it for script found on this forum and please link me with the original script thread.

iBlank

2012-07-11 16:08:42

From: speedster
I was thinking on how to fix this , well besides Smart needing an update to fit the entire applet (and possibly only display the part of the applet that is of interest to us ) would be to fix the - Login function / World Hopping function and editing the pre-defined coordinate boxes to fit the part of the applet required for us: MSCX etc etc.

Now some functions might be broken (- the ones that do not use the pre-defined coordinates -) so those might need to be updated as well. As for the scripts using hard coded coordinates those will have to be updated accordingly to the specific script.


I believe all of the scripts that use "hard coded" coordinates are relative to the main screen coordinates so I'm thinking they would be fine after the main screen coordinates are updated. I could definitely be wrong as far as that goes though.

speedster

2012-07-11 16:19:07

That would imply if the main screen would not display that crappy navbar they put in. If they can't manage that , then that would mean the main window coordinates will have to be modified, screwing up every hard-coded coordinate written for Simba.

Let's hope tough that they will manage to either not display the navbar so the main screen will display the game only as before, or
this is new :
if they do modify the client to fit the entire applet - add some sort of global off-set for every coordinate ever used. - I have no idea how they could do this as I haven't researched much in to Simba source and development :(

But I bet we have some bright minds who have thought about better ideas on how to fix this whole situation! :D - I am still in uni studying code lol - still having my baby steps.

Sin

2012-07-11 16:22:44


Here it comes!

speedster

2012-07-11 16:24:33

There he is :D Cpt. Kick-ass :D

Mark

2012-07-11 16:25:25

A few things do work after the main screen coords are changed i have posted on page 3 new some temp points should get uptext and a few other functions working

BenLand100

2012-07-11 16:28:38

SMART already has functionality to operate at different sizes, that's trivial to change in SRL. What other problem is there? Someone knowledgeable should get on IRC. Rizon #srl

Jointz

2012-07-11 16:38:18

Im alredy there =D not to script savy though lol.
From: BenLand100
SMART already has functionality to operate at different sizes, that's trivial to change in SRL. What other problem is there? Someone knowledgeable should get on IRC. Rizon #srl

speedster

2012-07-11 16:41:54

Well I think the problem is where the community waits for a standard coordinate set. If everyone adds their own coordinates the way they think it is right - scripts if modified to fit their own simba client would only work on that specific version of simba.

So i guess someone in charge of Simba needs to set these up for everyone so there won't be any fragmentation.

dx osiris1

2012-07-11 16:43:27

i still don't know how yuse forums of any kind. when there is a fix where will it be posted? i am askinga question because i dont know dont get angry.

YoHoJo

2012-07-11 16:46:06

From: speedster
Well I think the problem is where the community waits for a standard coordinate set. If everyone adds their own coordinates the way they think it is right - scripts if modified to fit their own simba client would only work on that specific version of simba.

So i guess someone in charge of Simba needs to set these up for everyone so there won't be any fragmentation.


There is/wont be any.
Simba and SRL are both worked on by a group of developers (and CAN be worked on by anyone who and just show their code which can be added by developers) and once/when they update (as always) the updates are normally downloaded automatically.

speedster

2012-07-11 16:52:12

Well yea , there will be an update and someone will have to go through the modified code and add it to the auto-update . That modified code will contain the updated coordinates which everyone else will be running in the future.

Modifying a script to run by my own private coordinates seems like a real waste of time atm as new future SRL functions will have to be altered as well to match my code or if i want to share a script It would have to come with my own modified client.

BenLand100

2012-07-11 17:03:16

From: Brandon
Probably the worst fix I could think of but meh it's temporary I guess..

SMART\src\smart\client.java:


Line 120: int w = 765;
Line 121: int h = 565;
Line 546: After clientFrame.add(clientApplet); press enter and add: clientFrame.setPreferredSize(new Dimension(785, 615));
Simba stuff:
in SRL.Simba change SetTargetArray(SmartImageArray, 765, 503) to: SetTargetArray(SmartImageArray, 765, 565)

and if on Simba 0.99 change SmartParams.Simba to Result:= SmartSpawnClient('./Plugins/', Params[0], ',' + Params[1], 765, 565, 's', '', '', -1);

Only thing changed is basically the height. Iunno bout anything else. So if that's detectable Iunno but so far it works as far as I can tell.

Any other client hacking crap is not on my end. Iunno Java.

As for the shitty results.. It looks like this.. Note: Iunno any client stuff so I don't know if you can get rid of the bar. I'd expect someone who knows java to at least try something but guess everyone relies on Ben :S



FYI: Lines 120/121 are unused, only there for testing purposes, the other line is only cosmetic and the particular size you use depends on your window decorations, so I'm hesitant to include something like that in SMART. That being said, if it's a significant issue cosmetically, there is a workaround related to adding another container to the frame which I might do eventually anyway.

Further, it's important that you use the size specified by the arguments for the applet (if they still specify them?), though I suspect you did that already. As far as detectable — not at all.

Basically, what I gather is that there isn't a requirement to change SMART itself, just the arguments that you pass to SMART when SRL invokes it.

grats

2012-07-11 17:04:38

From: Kyle Undefined
So are they FORCING people to use a different option than Safe Mode?


All the pro pvpers I know use safe mode (thousands of people who never bot) because it has the least lag and they can react at the fastest speed

so I doubt it.. MAYBE software mode will take over, which is barely a change

Brandon

2012-07-11 17:17:45

From: BenLand100
FYI: Lines 120/121 are unused, only there for testing purposes, the other line is only cosmetic and the particular size you use depends on your window decorations, so I'm hesitant to include something like that in SMART. That being said, if it's a significant issue cosmetically, there is a workaround related to adding another container to the frame which I might do eventually anyway.

Further, it's important that you use the size specified by the arguments for the applet (if they still specify them?), though I suspect you did that already. As far as detectable — not at all.

Basically, what I gather is that there isn't a requirement to change SMART itself, just the arguments that you pass to SMART when SRL invokes it.


Ahh didn't know the firs two were unused I didn't check all the variables. As for the last line, I had to add it because Smart was too small to fit the RSCanvas :S The size went from 503 to 565 with the new bar thing. When I was doing it I just used Spy++ quick time and came up with something quick without giving much thought to the SRL include. I didn't test if SRL Parameters will resize smart or not.

Like you said, just changing SRL Paramters changes Smart's size so that last line becomes useless unless you like a smart with no outlines. I'll keep that as a reference though. Try SRL stuff first, if it fails then edit source lol. Though I'm going to keep that last line since it "looks" much better (Cosmetics).

Any idea how to remove the bar though? Or is that now part of the client and there to stay?

YoHoJo

2012-07-11 17:23:54

Bar is Java/Part of the client. (Dragg crosshair, or right click it and you will see a 'Rusecape' drop-down menu)
Lots of people complaining about it on official rs forums, and so far Mod say it is here to stay, but if enough people complain maybe they will have an option to remove it.

BenLand100

2012-07-11 17:25:05

From: Brandon
Any idea how to remove the bar though? Or is that now part of the client and there to stay?

It is in the applet, so if they leave it, it's probably going to stay. I could forcefully remove it if it's a separate component, HOWEVER they'd definitely notice. If you want to play around with it, look into how to remove components from a container, and check how I find the game canvas. Actually, there might be an issue related to getting the colors if that bar is a separate component. Could you do a Simba powered screenshot (load smart, copy client to bitmap, display on debug screen) to confirm it's grabbing the correct colors?

klamse

2012-07-11 17:30:22

So how hard will the fix be to implement, Benland?
I appreciate everything you have contributed. :)

Jos3ph

2012-07-11 17:36:32

Curious on the down time, at any rate its a good time to do some quests. I'm sure everyone right now can question how much of a down time we should expect when they do drop the nuke…

Leonardo Da Vinci

2012-07-11 17:47:41

So it's just SMART that's not working?
If you use the browser, you can still bot?

BenLand100

2012-07-11 17:48:23

From: klamse
So how hard will the fix be to implement, Benland?
I appreciate everything you have contributed. :)

AFAIK everything still works on SMART's end, SRL just needs to update the arguments it passes to SMART. Bug the other SRL devs

Tniffoc

2012-07-11 17:49:41

From: BenLand100
AFAIK everything still works on SMART's end, SRL just needs to update the arguments it passes to SMART. Bug the other SRL devs


Wait, we still don't just parse the RS page? Wonder why…

Main

2012-07-11 17:52:17

so now we use appa? :)

grats

2012-07-11 17:52:46

So the only problem is the resolution that smart gives us doesn't go down far enough to see the bottom part of RS (and the SRL arguments are what set its resolution?)

BenLand100

2012-07-11 17:53:08

From: Tniffoc
Wait, we still don't just parse the RS page? Wonder why…

This is unrelated afaik. This time the size of the applet changed, no one had anything implemented to adjust that, except me. SRL just needs to change the dimensions it passes to SMART

BenLand100

2012-07-11 17:55:37

From: Main
so now we use appa? :)

Does appa even work at all for java applets?

kevin33

2012-07-11 17:55:37

All I know is that they better fix the item thing as quickly as possible because its just plain annoying.

Brandon

2012-07-11 17:56:41

From: BenLand100
This is unrelated afaik. This time the size of the applet changed, no one had anything implemented to adjust that, except me. SRL just needs to change the dimensions it passes to SMART


Client Image.. It's actually part of it now. One way to get rid of it I was thinking was instead of bitblt the entire canvas, maybe just doing it from a specific position would get rid of it but the bar is only there when logged in so there goes my idea out the window :c


dx osiris1

2012-07-11 17:57:18

benland, thank you for simplifying it. so when there is a fix where will it be posted, here? dont know how to use forums of any kind yet.

BenLand100

2012-07-11 18:01:15

From: Brandon
Client Image.. It's actually part of it now. One way to get rid of it I was thinking was instead of bitblt the entire canvas, maybe just doing it from a specific position would get rid of it but the bar is only there when logged in so there goes my idea out the window :c

Fantastic that it works, though. BTW: you could pass an offset to the image array (the array is a pointer, obv) to Simba. each pixel is 4bytes, and the start is the upper left corner. Do your math and you might make Simba ignore that bar all together.

E: Also, dragonpiper is complaining about not getting RS to load software or safe mode, did you do anything special?

Main

2012-07-11 18:02:26

@dx osiris1
Keep refreshing this page
http://villavu.com/forum/forumdisplay.php?f=179

grats

2012-07-11 18:03:20

From: dx osiris1
benland, thank you for simplifying it. so when there is a fix where will it be posted, here? dont know how to use forums of any kind yet.


It's pretty easy to fix, in SRL/misc/smart

and in SRL/SRL.simba

there is a "503" that's just the down resolution, not sure what the perfect resolution is but it's barely above 503 maybe like 530 or something






obviously 700 was too much

YoHoJo

2012-07-11 18:04:22

Updated first post:
How to Fix:
If you do not know what you're doing: Don't spam this thread. Don't ask how to fix it. Wait Patiently.

The developers and coders are working on fixes as hard/fast as they can.
When a fix is made, the update will either be rolled out automatically, or a big obvious thread will be made and you will see it.


Footy

2012-07-11 18:10:39

Just wondering, Is the log in issue related to smart or the srl include? Thanks

grats

2012-07-11 18:10:46

I think around 555 is perfect.

So this means the MSX1 type stuff will have to get updated because of the stupid bar on top, correct?


From: Foooty
Just wondering, Is the log in issue related to smart or the srl include? Thanks


read like.. 2 posts up


This is 555:


that is what I'd set it at, looks perfect to me..

dx osiris1

2012-07-11 18:12:46

yohojo i appreciate you answering my quiestion, thank you!

f1fanatic

2012-07-11 18:15:30

Thanks to everyone trying to fix this, one thing I have noticed after the update is ACA no longer recognises SMART. Don't know if it is something worth pointing out or just nothing. Either way good luck solving and thank you

Mark

2012-07-11 18:15:37

replace lines 80-84 in Globals.simba

const
MSX1 = 0;
MSY1 = 54;
MSX2 = 515;
MSY2 = 387

Brandon

2012-07-11 18:15:39

From: BenLand100
Fantastic that it works, though. BTW: you could pass an offset to the image array (the array is a pointer, obv) to Simba. each pixel is 4bytes, and the start is the upper left corner. Do your math and you might make Simba ignore that bar all together.

E: Also, dragonpiper is complaining about not getting RS to load software or safe mode, did you do anything special?


I just did: InitSmart(…) from the Smart 7.x thread that's it. Of course if he's trying to load it with SRL functions, it will load but he won't be able to login with simba or anything. I tried doing the bitmapfromclient with SRL Loading smart, it was in an infinite loop so I loaded it manually then did bitmap from client. It's cuz SRL uses some function called RSReady and since the client is shifted down, RSReady never returns true so that guy who's loading it is in an infinite loop for exactly 2 minutes before it breaks out.

I'm doing the math for getting rid of the bar. Harder without SRL functions of course. The 4 bytes are BGRA right? If it is a pointer I'd have to make it read from the scanline below the bar?

Thus:

PtrToRowZero + (ImageWidth * Image Height * 4) where 4 is RGBA and these parameters are the annoying bar image..
Ben You're a Genius man. I wouldn't have thought of that. This way is undetectable. Only problem I'd be worried about is that the bar is only there when a player is logged in. Other than that, the bar isn't there so if SRL uses any other functions that read the upper part of the image, I'd have to adjust this so that it searches for the bar and then sets the Pointer Position ={ *sigh* so much work for a bar LOL. I don't mind writing it though if no one else understands you or what I did.

Of course with the bar gone, either myself or some SRL dev will have to reduce how many bytes are read since as you can see the huge black space is at the bottom :l

Result:



Test script for anyone know wants to try it.

var
BMP: Integer;
ImagePtr: Integer;

begin
InitSmart(false);
ImagePtr := SmartImageArray + (765 * 50 * 4); //PtrToRowZero + (ClientWidth * 50 * BGRA); 50 Rows Of Bar PNG. 4 Bytes = BGRA.
SetTargetArray(ImagePtr, 765, 503);

BMP:= BitmapFromClient(0, 0, 764, 564);
SaveBitmap(BMP, 'C:/Users/Brandon/Desktop/Smart.bmp');
FreeBitmap(BMP);
end.

grats

2012-07-11 18:19:09

From: CRU1Z1N
replace lines 80-84 in Globals.simba

const
MSX1 = 0;
MSY1 = 54;
MSX2 = 515;
MSY2 = 387



So we pretty much done with the main screen & smarts size, yea?

BenLand100

2012-07-11 18:20:45

Fair enough, Brandon. I suspected that was all it would take.

YoHoJo

2012-07-11 18:22:02

From: f1fanatic
Thanks to everyone trying to fix this, one thing I have noticed after the update is ACA no longer recognises SMART. Don't know if it is something worth pointing out or just nothing. Either way good luck solving and thank you


My guess is that ACA used to find Runescape window by it's dimensions, but now that the bar is added on top the Runescape dimensions are different.

Just open ACA and it will show your entire screen and use that, and press F5 to refresh it. It will be a very easy fix to get ACA to recognize RS again, developer probably just needs to change one number (Runescape Height).

grats

2012-07-11 18:27:57

What about starting smarts view of RS at like 52 pixels on the Y axis, this would start it so the size is the same as the old client was, and the bar would just be loading off screen above it, so it wouldn't bother anyone

Brandon

2012-07-11 18:31:46

From: BenLand100
Fair enough, Brandon. I suspected that was all it would take.


And indeed you're correct! Hopefully everyone else understood that. For anyone who missed my edited post: http://villavu.com/forum/showpost.php?p=1067097&postcount=156

Kyle Undefined

2012-07-11 18:32:34

From: grats
What about starting smarts view of RS at like 52 pixels on the Y axis, this would start it so the size is the same as the old client was, and the bar would just be loading off screen above it, so it wouldn't bother anyone


If the bar is a part of the applet, it will be shown with the RS Canvas, iirc. You will have to write code to get the bar to completely disappear.

grats

2012-07-11 18:35:30

From: Kyle Undefined
If the bar is a part of the applet, it will be shown with the RS Canvas, iirc. You will have to write code to get the bar to completely disappear.


Well if we change the dimensions in SRL/SRL.simba from (what it is now) 503 to like 400, it cuts off the bottom half of runescape, and when we change it to like 700 there's a huge black space on the bottom, so I figured we could just cut off the top by instead of starting at 0 in the applet, we start at 52

I don't mean block part of the applet at all, nothing like that

I just mean not viewing that part of the screen, SRL makes smart into like a "window" of viewing runescape, and if the section isn't on the screen it is still there and working, we just can't see it

kylerperson

2012-07-11 18:41:51

i cant find this SRL/SRL.simba? Help pl0x

grats

2012-07-11 18:45:45

From: kylerperson
i cant find this SRL/SRL.simba? Help pl0x


simba -> includes -> srl -> srl.simba ?

x[Warrior]x3500

2012-07-11 18:46:10

From: f1fanatic
Thanks to everyone trying to fix this, one thing I have noticed after the update is ACA no longer recognises SMART. Don't know if it is something worth pointing out or just nothing. Either way good luck solving and thank you


if you used aca v3, you wouldnt have that issue.

dragonpiper

2012-07-11 18:46:45

Anyone know how to get smart to load software mode ? I already tried removing the 's' parameter and it didn't work .

kylerperson

2012-07-11 18:48:02

alright what line is this?

Zala

2012-07-11 18:48:50

I get it to load smart but the bot's pointer (at the login screen) is about 20 pixels too high above the input box.

How to fix that?

Kyle Undefined

2012-07-11 18:50:02

From: Zala
I get it to load smart but the bot's pointer (at the login screen) is about 20 pixels too high above the input box.

How to fix that?


READ the first post of this thread. A fix isn't going to happen over night, or in matter of hours after an update.

Brandon

2012-07-11 18:50:36

From: Zala
I get it to load smart but the bot's pointer (at the login screen) is about 20 pixels too high above the input box.

How to fix that?


Is this after doing what I posted? If so I already stated why.. Guess everyone just tried it without knowing what it does…

grats

2012-07-11 18:50:50

From: kylerperson
alright what line is this?


ctrl F for 503


line 171 for me

again that isn't the only one to change.



again to show my point:


that is 200 pixels, starting from 0 on Y axis going to 200 pixels

this has no problems, the entire game loads fine, you cannot see the bottom part.. obviously

If we were to start at 52 pixels, it would start at the blue line instead of the red line, this would then be the same "look" as the old rs for our color bots to detect

YoHoJo

2012-07-11 18:50:54

From: kylerperson
alright what line is this?

What are you even asking.
Please do not try fixing anything based off of what is posted here unless you know what you are doing, read the first post!

From: dragonpiper
Anyone know how to get smart to load software mode ? I already tried removing the 's' parameter and it didn't work .

SMART only does Safe mode as far as I know.


NO ONE TRY DOING ANY OF THESE BETA/DEVELOPMENT FIXES UNLESS YOU KNOW WHAT YOU ARE DOING!
STOP SPAMMING! STOP ASKING QUESTIONS IF YOU DON'T KNOW WHAT'S GOING ON.
WHEN A POPPER UPDATE IS OUT, YOU WILL KNOW!

kylerperson

2012-07-11 18:59:27

Was just wondering what line the client x and y's were lol….

grats

2012-07-11 19:07:57

I said earlier, all you have to do is find the "503" in those files because that's what the Y is set to

I encourage you to break it, so you can learn what stuff does.. in any case you can easily force update it to get back the settings from the SRL devs in the cloud

Brandon

2012-07-11 19:18:25

Someone who has Smart 7.x+ Run this and let me know if it works plox. If you don't have it then port the code


{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/Debug.Simba}

Function FoundBar: Boolean;
var
Bar: Integer;
X, Y: Integer;
begin
Bar := BitmapFromString(8, 11, 'meJyr/PGn8scfBiRQCRYpeP0DiJD' +
'FISIZ974BEbI4RCTmCgjxaMbJOFcDkVr6XIiI3+HPQOQ4/wyEAUcu' +
'2z4CkZBdjZBdLRBJR86FiFgsfw9EyOZDRLSmvwEiZHGIiELXKyBCF' +
'oeIiNc/ByJkcYgIXzEIIYtDRACmWWK1');

Result := FindBitmapToleranceIn(Bar, X, Y, 117, 13, 171, 35, 10);
FreeBitmap(Bar);
end;

var
BMP: Integer;
ImagePtr: Integer;

begin
{$IFDEF SMART}
InitSmart(false);
If (FoundBar) then
begin
ImagePtr := SmartImageArray + (765 * 50 * 4); //PtrToRowZero + (ClientWidth * 50 * BGRA); 50 Rows Of Bar PNG. 4 Bytes = BGRA.
SetTargetArray(ImagePtr, 765, 503);
end else
begin
SetTargetArray(ImagePtr, 765, 565);
end;
{$ENDIF}

BMP:= BitmapFromClient(0, 0, 765, 565);
DebugBitmap(BMP);
FreeBitmap(BMP);
end.

fumaor

2012-07-11 19:25:15

Scripts don't works right ?

Zala

2012-07-11 19:26:25

Someone who has Smart 7.x+ Run this and let me know if it works plox. If you don't have it then port the code


[Error] (618:5): Unknown identifier 'InitSmart' at line 617

Footy

2012-07-11 19:33:19

From: Zala
[Error] (618:5): Unknown identifier 'InitSmart' at line 617

Same thing

Wizzup?

2012-07-11 19:33:25

From: Brandon
Someone who has Smart 7.x+ Run this and let me know if it works plox. If you don't have it then port the code


{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/Debug.Simba}

Function FoundBar: Boolean;
var
Bar: Integer;
X, Y: Integer;
begin
Bar := BitmapFromString(8, 11, 'meJyr/PGn8scfBiRQCRYpeP0DiJD' +
'FISIZ974BEbI4RCTmCgjxaMbJOFcDkVr6XIiI3+HPQOQ4/wyEAUcu' +
'2z4CkZBdjZBdLRBJR86FiFgsfw9EyOZDRLSmvwEiZHGIiELXKyBCF' +
'oeIiNc/ByJkcYgIXzEIIYtDRACmWWK1');

Result := FindBitmapToleranceIn(Bar, X, Y, 117, 13, 171, 35, 10);
FreeBitmap(Bar);
end;

var
BMP: Integer;
ImagePtr: Integer;

begin
{$IFDEF SMART}
InitSmart(false);
If (FoundBar) then
begin
ImagePtr := SmartImageArray + (765 * 50 * 4); //PtrToRowZero + (ClientWidth * 50 * BGRA); 50 Rows Of Bar PNG. 4 Bytes = BGRA.
SetTargetArray(ImagePtr, 765, 503);
end else
begin
SetTargetArray(ImagePtr, 765, 565);
end;
{$ENDIF}

BMP:= BitmapFromClient(0, 0, 765, 565);
DebugBitmap(BMP);
FreeBitmap(BMP);
end.


While this is a fun fix, I can see it become a problem. It appears that from the screenshot you posted previously there's now a black bar below the image. That shouldn't happen, so if you're using EIOS SMART might be passing the actual size with the bar to Simba, whereas the pointer you pass starts after the bar. That's a problem, as Simba will then read beyond the pointer if the size isn't corrected too. It looks like you already set the proper size though, but I'm not sure what the impact on EIOS will be. (Switching targets, etc)

Master BAW

2012-07-11 19:33:34

From: Brandon
Someone who has Smart 7.x+ Run this and let me know if it works plox. If you don't have it then port the code


I don't know if I have Smart 7.2 and Simba 0.99 installed the right way, but this is what I get :
Cont [True] URL [http://www.runescape.com/game.ws]
Error: Exception: Access violation at line 36
The following bitmaps were not freed: [0]

grats

2012-07-11 19:33:54

From: Foooty
Same thing


You guys sure you're not on 6.9? That seems to be the auto updated version.


From: Wizzup?
While this is a fun fix, I can see it become a problem. It appears that from the screenshot you posted previously there's now a black bar below the image. That shouldn't happen, so if you're using EIOS SMART might be passing the actual size with the bar to Simba, whereas the pointer you pass starts after the bar. That's a problem, as Simba will then read beyond the pointer if the size isn't corrected too. It looks like you already set the proper size though, but I'm not sure what the impact on EIOS will be. (Switching targets, etc)


It's like that because his Y axis resolution is too big, it should still be around the same "503" not up at "565" which is even bigger than the new bar + entire rs screen

hunnyitsme3

2012-07-11 19:34:20

when this is fixed, will we have to update simba, or will all scripts have to be updated to fit the new smart screen update due to pixel shifts?

Master BAW

2012-07-11 19:36:24

From: hunnyitsme3
when this is fixed, will we have to update simba, or will all scripts have to be updated to fit the new smart screen update due to pixel shifts?


good question. I suppose it will only be updated for the newest simba/Smart but I don't know much about this…
Edit: you may not ask questions, see this post
From: YoHoJo
NO ONE TRY DOING ANY OF THESE BETA/DEVELOPMENT FIXES UNLESS YOU KNOW WHAT YOU ARE DOING!
STOP SPAMMING! STOP ASKING QUESTIONS IF YOU DON'T KNOW WHAT'S GOING ON.
WHEN A POPPER UPDATE IS OUT, YOU WILL KNOW!
:frusty:

hunnyitsme3

2012-07-11 19:40:33

I just got into this simba program today and had been working hard looking at tutorials and what not, and it was getting quite frustrating but through much effort, of looking through 10 different range guild programs I found one that worked, and as soon as I got on the red cursor or the dot signifying the bot in the program, couldn't go all the way to the username bar and just sat above it, then I found this.. Aggravating, Jagex you defense noob.

EpicStyle

2012-07-11 20:04:15

From: CRU1Z1N
replace lines 80-84 in Globals.simba

const
MSX1 = 0;
MSY1 = 54;
MSX2 = 515;
MSY2 = 387


Good, works for me.

Brandon

2012-07-11 20:04:20

From: Wizzup?
While this is a fun fix, I can see it become a problem. It appears that from the screenshot you posted previously there's now a black bar below the image. That shouldn't happen, so if you're using EIOS SMART might be passing the actual size with the bar to Simba, whereas the pointer you pass starts after the bar. That's a problem, as Simba will then read beyond the pointer if the size isn't corrected too. It looks like you already set the proper size though, but I'm not sure what the impact on EIOS will be. (Switching targets, etc)


There is a leak somewhere though :S After doing about 100 runs it gives out of memory and I can't find it. Might be the targets. I should probably do something like FreeTarget(….); But I'll do that later after it's confirmed working or wanted. If no one wants this fix well.. Iunno then.

I did some tweaks to it.. I added browser support just for testing (Comment out Define Smart to use the browser)
This will also remove the black bar you mentioned Wiz. I had the bitmapfromclient too large:


{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/Debug.Simba}

Function FoundBar: Boolean;
var
Bar: Integer;
X, Y: Integer;
begin
Bar := BitmapFromString(8, 11, 'meJyr/PGn8scfBiRQCRYpeP0DiJD' +
'FISIZ974BEbI4RCTmCgjxaMbJOFcDkVr6XIiI3+HPQOQ4/wyEAUcu' +
'2z4CkZBdjZBdLRBJR86FiFgsfw9EyOZDRLSmvwEiZHGIiELXKyBCF' +
'oeIiNc/ByJkcYgIXzEIIYtDRACmWWK1');

Result := FindBitmapToleranceIn(Bar, X, Y, 117, 13, 171, 35, 10);
FreeBitmap(Bar);
end;

var
BMP: Integer;
ImagePtr: Integer;
H: Integer;

begin
H:= 552;
{$IFDEF SMART}
InitSmart(false);
If (FoundBar) then
begin
ImagePtr := SmartImageArray + (765 * 50 * 4); //PtrToRowZero + (ClientWidth * 50 * BGRA); 50 Rows Of Bar PNG. 4 Bytes = BGRA.
SetTargetArray(ImagePtr, 765, 503);
H := 503;
end else
begin
SetTargetArray(SmartImageArray, 765, 503);
end;
{$ELSE}
if (FoundBar) then
begin
SetTargetBitmap(BitmapFromClient(0, 52, 765, 552)); //501 + The PtrRowZero shift.
H := 503;
end;
{$ENDIF}
BMP:= BitmapFromClient(0, 0, 764, H);
DebugBitmap(BMP);
FreeBitmap(BMP);
end.

Jos3ph

2012-07-11 20:04:34

Could you imagine what its going to be like when the Nuke hits? I'm not even going to bother logging on to the forums, may just wanna lock any posts that start with the word "bot" and end with "simba" haaa:duh:

BenLand100

2012-07-11 20:05:33

From: MasterCrimez
good question. I suppose it will only be updated for the newest simba/Smart but I don't know much about this…
Edit: you may not ask questions, see this post
:frusty:

Butthurt.

From: Wizzup?
While this is a fun fix, I can see it become a problem. It appears that from the screenshot you posted previously there's now a black bar below the image. That shouldn't happen, so if you're using EIOS SMART might be passing the actual size with the bar to Simba, whereas the pointer you pass starts after the bar. That's a problem, as Simba will then read beyond the pointer if the size isn't corrected too. It looks like you already set the proper size though, but I'm not sure what the impact on EIOS will be. (Switching targets, etc)

He had the size too large in the copyclienttobitmap part, everything else is as it should be
E: also this will still leave the mouse coords off, however, you could always put a constant offset in all mouse procedures :3

ON THAT NOTE

From: Brandon
Someone who has Smart 7.x+ Run this and let me know if it works plox. If you don't have it then port the code

[…]
BMP:= BitmapFromClient(0, 0, 765, 565);
[…]

The 565 is too big when using the smaller area, use 503 if you're excluding the bar w/ the pointer method
E: See it was fixed in a later post

Brandon

2012-07-11 20:12:45

From: BenLand100
Butthurt.


He had the size too large in the copyclienttobitmap part, everything else is as it should be
E: also this will still leave the mouse coords off, however, you could always put a constant offset in all mouse procedures :3

ON THAT NOTE

The 565 is too big when using the smaller area, use 503 if you're excluding the bar w/ the pointer method


Edited the post. Ty for the help =].


Anyone test it? It has to be tested. It works for me but I need to know who it works for and who it doesn't..

grats

2012-07-11 20:15:29

Hey now I'm butthurt too :crying:

dracontamer

2012-07-11 20:41:29

[Error] (28:5): Unknown identifier 'InitSmart' at line 27
Compiling failed.

is the error i got while running the code you posted, in simba.

akash22

2012-07-11 20:53:40

Are injection bots affected by this navigation toolbar thing?

iGunXZ

2012-07-11 20:56:01

I think the bar is part of the game client itself, because when I hover over one of the 4 links, the uptext shows up in the RS game client….

YoHoJo

2012-07-11 20:57:53

From: iGunXZ
I think the bar is part of the game client itself, because when I hover over one of the 4 links, the uptext shows up in the RS game client….

Yes the bar is part of the client/java. Read the post in the thread! :)

From: akash22
Are injection bots affected by this navigation toolbar thing?

Yes, go visit their forums to see their status about the fixes etc.
Lots of noobs spamming up their forums about it too :].

akash22

2012-07-11 20:57:54

Originally Posted by iGunXZ
I think the bar is part of the game client itself, because when I hover over one of the 4 links, the uptext shows up in the RS game client….


You're right! When i tried targetting my runescape screen with simba the toolbar was in the red section.

chriscosta1987

2012-07-11 21:07:53

Thanks for everyone smart enough to fix this!

nobody u kno

2012-07-11 21:25:20

An SRL Update was available?

speedster

2012-07-11 21:48:10

I would gladly test stuff… But i haven't yet figured it out how to allow Simba to use Smart 7.2 :duh:

If you can explain that bit to me it would be wonderful :o

From: Brandon
Edited the post. Ty for the help =].


Anyone test it? It has to be tested. It works for me but I need to know who it works for and who it doesn't..

Leonardo Da Vinci

2012-07-11 21:56:36

I'll be willing to test if someone could directly tell me what I need to do.
Just by reading this thread I see lots of theories and people saying "should do this" ect.
What exactly needs to be done?

I'll help in any way I can.

Ashihtaka

2012-07-11 22:02:42

It's a shame that this (most-likely) unintended graphical update has probably made it clear to jagex on what basis they should be steering the bot nuke.

grats

2012-07-11 22:08:49

From: ashihtaka
It's a shame that this (most-likely) unintended graphical update has probably made it clear to jagex on what basis they should be steering the bot nuke.


Their (most-likely) intentional update (there is no way you can accidentally do what they did) is far from a method to bot nuke, unless they only want us to be down and out for like 30-60 minutes of actual "fixing" stuff

as shown in this thread, this really isn't much of a problem to SMART and requires only a little bit of changes to SRL

Leonardo Da Vinci

2012-07-11 22:35:52

From: grats
as shown in this thread, this really isn't much of a problem to SMART and requires only a little bit of changes to SRL


I have asked previously, but everyone is ignoring me!
Seriously though, what exactly do I have to do to get a temporary fix going?

YoHoJo

2012-07-11 22:41:01

From: Law and Justice
I have asked previously, but everyone is ignoring me!
Seriously though, what exactly do I have to do to get a temporary fix going?


Read the big bold red text on the first post.

All of the people who known how to fix are busy fixing, and not many have time/care to explain how to do temp fixes to each individual person in need.

If you know what you are doing you can read previous posts and try yourself, if not then just wait patiently until an official update is rolled out.

Brandon

2012-07-11 22:45:15

From: Law and Justice
I have asked previously, but everyone is ignoring me!
Seriously though, what exactly do I have to do to get a temporary fix going?


There's not much you can do right now. Anyway the only problem i ran into with every fix I threw at myself was the Getter functions. Not the Setters.

Example.. When I offset the Pointers, it gets all the colours and detects RSReady and all the good bitmap colour finding stuff.. I got a way to offset the mouse by exactly 50 pixels which works flawlessly.

Only problem i'm running into is getter functions that are built in such as GetMousePos.. It returns the position relative to the client..

It's also hell if I offset everything by the 50 pixels because when you're not logged in, the offset isn't needed. When you are logged in, the offset is needed.

Might as well either:

A: Offset everything and fix all the login functions and static variables such as MIX1, MMX1.
B: Just Fix Everything to work with the bar and whatever scripts were broken will need updating.
C: Offset everything + Write Wrappers for all getter functions.. Not something I want to do at all.
D: Somehow remove the bar within smart itself which as ben said could probably be detected.

Now for all of them, some kind of offset will be needed to check if a player is logged in all the time. Why? Because the bar will show when logged in and all shit will be pushed down the screen.. When Not logged in, they reset.

Dannyownz

2012-07-11 22:46:13

Good luck to everybody trying to fix it. No rush, we dont need to bot 24/7. :)

Leonardo Da Vinci

2012-07-11 22:52:10

From: YoHoJo
Read the big bold red text on the first post.

All of the people who known how to fix are busy fixing, and not many have time/care to explain how to do temp fixes to each individual person in need.

If you know what you are doing you can read previous posts and try yourself, if not then just wait patiently until an official update is rolled out.


Ah okay, fair enough. I guess if there was something I was able to do, I would have understood better what was being said.
I guess I'll just kick back and let the professionals do their jobs.

From: Brandon
There's not much you can do right now. Anyway the only problem i ran into with every fix I threw at myself was the Getter functions. Not the Setters.

Example.. When I offset the Pointers, it gets all the colours and detects RSReady and all the good bitmap colour finding stuff.. I got a way to offset the mouse by exactly 50 pixels which works flawlessly.

Only problem i'm running into is getter functions that are built in such as GetMousePos.. It returns the position relative to the client..

It's also hell if I offset everything by the 50 pixels because when you're not logged in, the offset isn't needed. When you are logged in, the offset is needed.

Might as well either:

A: Offset everything and fix all the login functions and static variables such as MIX1, MMX1.
B: Just Fix Everything to work with the bar and whatever scripts were broken will need updating.
C: Offset everything + Write Wrappers for all getter functions.. Not something I want to do at all.
D: Somehow remove the bar within smart itself which as ben said could probably be detected.

I think B would be the easiest and quickest to roll out. I'm going to get started on B until someone who knows something or has better ideas share them.


Yeah… That didn't make too much sense to me, I understood a little…
But I think I'll just wait.

Brandon

2012-07-11 22:55:15

From: Law and Justice
Ah okay, fair enough. I guess if there was something I was able to do, I would have understood better what was being said.
I guess I'll just kick back and let the professionals do their jobs.

Yeah… That didn't make too much sense to me, I understood a little…
But I think I'll just wait.


K.. Load runescape. Look at your screen. Everything is normal right? SRL functions need a little tweaking to log you in.

That's all fine and nice. What happens when you log in? All in game functions need their Y-Values += 50. So a 0 becomes a 50, a 50 becomes a 100. These are Y values.
When you log out, everything goes back to normal. No more bar so you don't need that 50 offset anymore. Good?

So you can either add 50 to every function variable that operates while logged in or add 50 to the y value of the mouse procedure. The only problem with this is when a person uses GetMousePos.. it does not add that 50 for you. There is no way to edit it to do that without a wrapper which doesn't work well with EIOS.

Leonardo Da Vinci

2012-07-11 22:58:40

From: Dannyownz
Good luck to everybody trying to fix it. No rush, we dont need to bot 24/7. :)


Yeah, exactly this.
It gives us some time to get some quests goin'.

From: Brandon
K.. Load runescape. Look at your screen. Everything is normal right? SRL functions need a little tweaking to log you in.

That's all fine and nice. What happens when you log in? All in game functions need their Y-Values += 50. So a 0 becomes a 50, a 50 becomes a 100. These are Y values.
When you log out, everything goes back to normal. No more bar so you don't need that 50 offset anymore. Good?


Ohhh okay, now I see…
Thanks for explaining, now I actually see what the situation is.
Yeah, there's absolutely no way I can help, although I wish I could.

Based Lord

2012-07-11 23:02:37

Sigh, what will jagex think of next

Silent

2012-07-11 23:11:51

From: Based Lord
Sigh, what will jagex think of next


From: Brandon
There's not much you can do right now. Anyway the only problem i ran into with every fix I threw at myself was the Getter functions. Not the Setters.

Example.. When I offset the Pointers, it gets all the colours and detects RSReady and all the good bitmap colour finding stuff.. I got a way to offset the mouse by exactly 50 pixels which works flawlessly.

Only problem i'm running into is getter functions that are built in such as GetMousePos.. It returns the position relative to the client..

It's also hell if I offset everything by the 50 pixels because when you're not logged in, the offset isn't needed. When you are logged in, the offset is needed.

Might as well either:

A: Offset everything and fix all the login functions and static variables such as MIX1, MMX1.
B: Just Fix Everything to work with the bar and whatever scripts were broken will need updating.
C: Offset everything + Write Wrappers for all getter functions.. Not something I want to do at all.
D: Somehow remove the bar within smart itself which as ben said could probably be detected.

Now for all of them, some kind of offset will be needed to check if a player is logged in all the time. Why? Because the bar will show when logged in and all shit will be pushed down the screen.. When Not logged in, they reset.


I think the easiest solution is going to be adjusting the main screen cords and adding in a touch up for the login function. Seems like the least amount of work to me. If we update all the constants do we still have to update the individual functions? Like GetMousePos?

grats

2012-07-11 23:13:34

If we do have to, then we should learn from that and have everything work off those main constants.. this way if this ever does happen again we grab a few more coords and then bam everything works.

Juggalo812

2012-07-11 23:26:31

From: grats
Their (most-likely) intentional update (there is no way you can accidentally do what they did) is far from a method to bot nuke, unless they only want us to be down and out for like 30-60 minutes of actual "fixing" stuff

as shown in this thread, this really isn't much of a problem to SMART and requires only a little bit of changes to SRL


Sorry to clutter up the thread, but this has been the longest 30-60 minutes I have ever encountered. This was unintentional to mess us up I'm guessing, but it worked for an entire day. No way could they have thought adding a bar could put SRL down an entire day. Now that people have encountered this issue I'm sure it won't be so bad next time they do something like this, but for now it was a good "unintentional" stopper.

Brandon

2012-07-11 23:28:11

From: Silent SPY
I think the easiest solution is going to be adjusting the main screen cords and adding in a touch up for the login function. Seems like the least amount of work to me. If we update all the constants do we still have to update the individual functions? Like GetMousePos?


Nah GetMousePos always returns the true client coordinates unless you put it in a wrapper and modify it in there.

Ashaman just mentioned to me the Uptext.. That has to be done in Simba itself unless Simba will read the uptexts from a bitmap. If it does then the best possible fix without having to update simba would be to offset everything ={ Also the most work though.

lucifer0412

2012-07-11 23:28:48

to fix the item problem go to the jagex cache and delete it.. or check the first runescape thread on the genereal tab in runscape fourms, nuff said, will give u all the info u need there to fix the items that you are unable to see anyways..

nickrules

2012-07-11 23:38:06

From: Brandon

It's also hell if I offset everything by the 50 pixels because when you're not logged in, the offset isn't needed. When you are logged in, the offset is needed.


FYI, RS is still slightly off (10-20 px, maybe?) when not logged in for me. Might be useful to know.

Leonardo Da Vinci

2012-07-11 23:39:55

From: lucifer0412
to fix the item problem go to the jagex cache and delete it.. or check the first runescape thread on the genereal tab in runscape fourms, nuff said, will give u all the info u need there to fix the items that you are unable to see anyways..


Wrong, you just need to Ctrl+Alt+Delete, click "latestJagexUpdate.exe" and click "End process". There, you can now bot again.

grats

2012-07-11 23:40:54

From: Juggalo812
Sorry to clutter up the thread, but this has been the longest 30-60 minutes I have ever encountered. This was unintentional to mess us up I'm guessing, but it worked for an entire day. No way could they have thought adding a bar could put SRL down an entire day. Now that people have encountered this issue I'm sure it won't be so bad next time they do something like this, but for now it was a good "unintentional" stopper.


I won't read your full post until you read my entire post, it's clear you didn't.. or you don't understand what has happened in this thread… or you don't actually know what hard core fixing vs brainstorming multiple fixes and which one is the best is

From: nickrules
FYI, RS is still slightly off (10-20 px, maybe?) when not logged in for me. Might be useful to know.


I noticed that as well, the login and load screen seems kind of funky because it doesn't have the top bar, and seems to switch up sometimes

sickle

2012-07-11 23:44:20

Just wanted to say…. you guys are aMazing! keep up the good work. Most of us really appreciate what you do. :)

Ashaman88

2012-07-11 23:58:47

____________Smurgs QuickHerblore V1.01_______________

Unf Mixed: 182 (3430 unf/hr)
Time running: 3 Minutes and 11 Seconds
Time until break: 5 Hours, 44 Minutes and 48 Seconds
_____________________________________________________

hope is not lost! basic scripts can be semi easily fixed if they don't rely on uptext

Mewlink2

2012-07-12 00:00:02

From: Andres
I feel like "…but it's Jagex" would be a good meme ;)


http://imgur.com/hiRB6

Made it just cause i saw your comment :D

Leonardo Da Vinci

2012-07-12 00:03:12

From: ashaman88
____________Smurgs QuickHerblore V1.01_______________

Unf Mixed: 182 (3430 unf/hr)
Time running: 3 Minutes and 11 Seconds
Time until break: 5 Hours, 44 Minutes and 48 Seconds
_____________________________________________________

hope is not lost! basic scripts can be semi easily fixed if they don't rely on uptext


Hmmm… Anyone else have any idea what other bots are still working?

007sonic

2012-07-12 00:16:41

It's amazing how early on today there were like 70,000 less people playing runescape or at least it seemed that way seeing as there were only a couple hundred people playing in each server. Makes me think runescape is almost kept alive by botters and such but then again i thought maybe not a lot of people play runescape early on in the day. Anyways this break is kinda cool did a couple of lengthy quests. (sorry if im filling this thread up with unnecessary ramblings)

Jos3ph

2012-07-12 00:17:51

From: Law and Justice
Hmmm… Anyone else have any idea what other bots are still working?


Typical leecher, jump ship when were down…

Leonardo Da Vinci

2012-07-12 00:19:35

From: ashaman88
____________Smurgs QuickHerblore V1.01_______________

Unf Mixed: 182 (3430 unf/hr)
Time running: 3 Minutes and 11 Seconds
Time until break: 5 Hours, 44 Minutes and 48 Seconds
_____________________________________________________

hope is not lost! basic scripts can be semi easily fixed if they don't rely on uptext


From: po2n star
Typical leecher, jump ship when were down…


I'm not a leecher… Well, I am for the moment. I'm writing a script as we speak.
I didn't mean bot as in "A bot other than simba". I'd never use anything other than simba. I love the scripts and the community.

Jos3ph

2012-07-12 00:22:24

From: Law and Justice
I'm not a leecher… Well, I am for the moment. I'm writing a script as we speak.
I didn't mean bot as in "A bot other than simba". I'd never use anything other than simba. I love the scripts and the community.


I know what you meant; let's not even try and dance around the truth.

But who am I to call you out on your actions, good luck.

Ashaman88

2012-07-12 00:25:44

From: Law and Justice
Hmmm… Anyone else have any idea what other bots are still working?


The script on the forums won't work, none of them will, the only reason that is working for me is because of lots of changes to the script and the srl include

Leonardo Da Vinci

2012-07-12 00:28:58

From: po2n star
I know what you meant; let's not even try and dance around the truth.

But who am I to call you out on your actions, good luck.


Not sure what you mean. Have I done something to upset you?
I meant script, that's all.
I appreciate the wish of luck.

From: ashaman88
The script on the forums won't work, none of them will, the only reason that is working for me is because of lots of changes to the script and the srl include


Oh okay, fair enough.
Cheers.

beats-

2012-07-12 00:31:28

From: po2n star
I know what you meant; let's not even try and dance around the truth.

But who am I to call you out on your actions, good luck.


Lol. Are you that bored without bots running that you have resorted to trolling?

Leonardo Da Vinci

2012-07-12 00:41:41

From: beats-
Lol. You that bored without bots running you are trolling?


No, I think he's just upset because his mummy hasn't given him his bottle yet.

Kyle Undefined

2012-07-12 00:48:12

Guys, settle down, enough.

Couldn't we just fix the SMART size so it includes the bar and the full RS canvas? Then, just add the 50 offset to the Mouse functions, and update the coordinate constants?

Doesn't seem like it would be THAT time consuming to do.

John

2012-07-12 00:58:27

From: Kyle Undefined
Guys, settle down, enough.

Couldn't we just fix the SMART size so it includes the bar and the full RS canvas? Then, just add the 50 offset to the Mouse functions, and update the coordinate constants?

Doesn't seem like it would be THAT time consuming to do.


By What Convo's I've seen it's a fair bit more complicated. like the bar isn't always there for me when I log in, some times it is.

grats

2012-07-12 01:04:58

I have never seen the bar on the top of the login screen, but the whole runescape canvas does move up and down on different game.ws loads… which isn't cool

Kyle Undefined

2012-07-12 01:25:43

Just merged two updates to SRL thanks to euphemism and Silent Spy.

Euph did the SMART size fix, and Silent did the update to the global constants. It's not a proper fix, but should help get people rolling.

The official fix has yet to be implemented, this is a step forward.

Ashaman88

2012-07-12 01:43:07

From: Kyle Undefined
Just merged two updates to SRL thanks to euphemism and Silent Spy.

Euph did the SMART size fix, and Silent did the update to the global constants. It's not a proper fix, but should help get people rolling.

The official fix has yet to be implemented, this is a step forward.


some built in functions will have to be changed. Like uptext and i think a few others… Also any scripts that use coords will need to be updated as well.

Justin

2012-07-12 01:58:05

Hope the dev team\helpers aren't forgetting about people who don't use SMART

Flight

2012-07-12 02:40:48

From: YoHoJo

stuff… talk… text… more stuff…

The developers and coders are working on fixes as hard/fast as they can.

blah…. something…. words…. forum text… stuff I didn't read…


I'm not, I'm personally waiting until Optimus has passed. So anyone using my scripts you'll just have to be patient until the second nuke has hit, soon after I'll be updating all my scripts to the newest everything (Simba/SMART/SPS). So hang in there. :)

grats

2012-07-12 02:44:33

Flights scripts aren't working wtf?!?!? why not?!? how 2 fix?

Justin

2012-07-12 02:54:26

From: grats
Flights scripts aren't working wtf?!?!? why not?!? how 2 fix?


I know Flights Livid Farmer was working (before toolbar)

Brandon

2012-07-12 03:05:40

Someone tell me if this works: https://github.com/Brandon-T/SRL-5/zipball/master
You can view all the changes made here: https://github.com/Brandon-T/SRL-5/commit/a5454c59143312fb303e26ce635ec121b2bf82db

I updated everything but remember uptext functions don't work still. Gametab, all of them work. Scripts will need updating of course.

The way I did it:

Globals:


const //In-Game = IG. | Log-In = LI.
IGX = 0;
IGY = 50;
LIX = 0;
LIY = 22;

That way if this happens again, you simply change the offsets and bam everything fixed (Hopefully).

I tested all banking functions except withdrawing though that should work. I tested most game tab functions and I tested login/logout, GetMMDotsOnMS, Minimap functions, ToggleXPBar, MinimapLevels, SkillLevels, etc.. I Updated None of the setgraphics/audio functions. Everything else updated to use the offsets from the globals.Simba so you're going to see a shit load of X + IGX, Y + IGY in almost every function.

If something isn't working or you don't like the changes, let me know.

I think that's about it.. Oh and I had to change SmartGraphics to reflect the new client size. If it works for everyone and you like the changes then I'll send it as a pull request to the official SRL Include and hopefully they accept it and put it in the include or else we're all going to have to wait.

Anyway Good night all.

Justin

2012-07-12 03:10:53

From: Brandon
Someone tell me if this works: https://github.com/Brandon-T/SRL-5/zipball/master

I updated everything but remember uptext functions don't work still. Gametab, all of them work. Scripts will need updating of course.

The way I did it:

Globals:


const //In-Game = IG. | Log-In = LI.
IGX = 0;
IGY = 50;
LIX = 0;
LIY = 22;

That way if this happens again, you simply change the offsets and bam everything fixed (Hopefully).

I tested all banking functions except withdrawing though that should work. I tested most game tab functions and I tested login/logout, GetMMDotsOnMS, Minimap functions, ToggleXPBar, MinimapLevels, SkillLevels, etc.. I Updated None of the setgraphics/audio functions. Everything else updated to use the offsets from the globals.Simba so you're going to see a shit load of X + IGX, Y + IGY in almost every function.

If something isn't working or you don't like the changes, let me know.

I think that's about it.. Oh and I had to change SmartGraphics to reflect the new client size. If it works for everyone and you like the changes then I'll send it as a pull request to the official SRL Include and hopefully they accept it and put it in the include or else we're all going to have to wait.

Anyway Good night all.


Amazing work there Brandon. Can you comment on the browser one? How will that work

Brandon

2012-07-12 03:17:50

From: [J]ustin
Amazing work there Brandon. Can you comment on the browser one? How will that work


Working on my end. I tested that too. Browser works the same as Smart. No need for IFDEF's or anything. Nothing different. Same Offsets and everything.

Justin

2012-07-12 03:24:40

From: Brandon
Working on my end. I tested that too. Browser works the same as Smart. No need for IFDEF's or anything. Nothing different. Same Offsets and everything.


Fantastic! Thanks for clearing that up man

Silent

2012-07-12 04:29:30

Edit:

I'm a moron.

YoHoJo

2012-07-12 04:31:06

^Bro you can drag and move that wherever you wish and it always loads in same place you left it last.

dragonpiper

2012-07-12 05:10:12

Anyone have a fix for the items glitching in safe mode ?

Silent

2012-07-12 05:10:22

From: YoHoJo
^Bro you can drag and move that wherever you wish and it always loads in same place you left it last.


son of a….

I had no clue haha.

Justin

2012-07-12 05:26:17

Using Brandons SRL include with the browser, Seems uptext is broken.


. c
. c
. c
. c
. c

Was looking to Banker.

YoHoJo

2012-07-12 05:28:06

i updated everything but remember uptext functions don't work still.


caman justin read! <3

Justin

2012-07-12 05:29:00

From: YoHoJo
caman justin read! <3


facedesk.

I was just re-reading his post and saw that

grats

2012-07-12 05:30:48

From: dragonpiper
Anyone have a fix for the items glitching in safe mode ?


clear cache - few people said it works

switch to direct X or openGL and then switch back to safe mode - also said to work

Leonardo Da Vinci

2012-07-12 05:32:38

No fix for today?
Ah well, I hope we have better luck tomorrow. Keep up the good work, guys!
Time for another time travel method, SEROQUEL!

LemonHaze

2012-07-12 05:50:48

what do you guys think of social slayer?
I love it and the pets are awesome, they are damn expensive though.

white_lycan

2012-07-12 05:59:31

umm, after switching to software a couple hours ago, i don't see safe mode!

Justin

2012-07-12 06:08:18

From: white_lycan
umm, after switching to software a couple hours ago, i don't see safe mode!


Hold down the 's' key while RuneScape is loading.

white_lycan

2012-07-12 06:11:07

woah magic!!!!!

grats

2012-07-12 06:29:44

From: Law and Justice
No fix for today?
Ah well, I hope we have better luck tomorrow. Keep up the good work, guys!
Time for another time travel method, SEROQUEL!


Well, a few things were fixed, on top of that there were different methods on how to fix certain things.. I think we're going with the load full rs including the dumb bar at top, therefore the coordinates will all need to be updated, mouse movement coords and all of that stuff. (a lot has been updated already) So pretty soon here, I don't believe jagex has ever really done an upgrade this silly; it isn't really something like "oh they changed the compass to be a little off center so we just have to switch it over a few pixels" it's more of everything moved a few pixels, so everything has to have that added 50pixels to the Y axis or whatever it is (about 50 I believe)

Leonardo Da Vinci

2012-07-12 07:00:53

From: grats
Well, a few things were fixed, on top of that there were different methods on how to fix certain things.. I think we're going with the load full rs including the dumb bar at top, therefore the coordinates will all need to be updated, mouse movement coords and all of that stuff. (a lot has been updated already) So pretty soon here, I don't believe jagex has ever really done an upgrade this silly; it isn't really something like "oh they changed the compass to be a little off center so we just have to switch it over a few pixels" it's more of everything moved a few pixels, so everything has to have that added 50pixels to the Y axis or whatever it is (about 50 I believe)


God damn.. Now I'm not much of a coder or programmer (I'm trying) but that sounds like a horrible thing to try to fix.
So once smart is updated, will all the scripts need to be too?
Also, any chance that this was actually a really horrible attempt at stopping colour-bots?
Because I'm not seeing any many other bots… Like, at all. So could they perhaps have taken down the other botting programs too?

grats

2012-07-12 07:16:54

yea it would have messed up every bots coordinates, instead of clicking at 0,0 now you have to click at 0,50 to click that part of the screen..

scripts should be using the SRL includes, so once those are updated scripts should just automatically work (most of them at least) it's more annoying to update than it is hard to update

if you open smart at the bottom you see the coordinates X, Y top left corner of screen would be 0,0 etc.. basically having to add 0,50 to everything.. so 100,100 would be 100,150 etc

and I'm sure other stuff got changed that is just less noticed

Home

2012-07-12 07:48:56

There must be other ways guys :S than this..

~Home

Wizzup?

2012-07-12 07:52:34

From: Home
There must be other ways guys :S than this..

~Home


What is ``this''?

There are several ways to ``fix'' this. The best way is to simply incorporate the banner in SRL. That means, changing all coordinates constants and possibly hardcoded constants. Another fix has been proposed by Benland en made by Brandon, which is to simply offset the array passed to Simba but the size of the bar in pixels * 4. That works wonders, too. That way you have to change nothing, but it is a bit of a hack.

Home

2012-07-12 07:57:40

From: Wizzup?
What is ``this''?

There are several ways to ``fix'' this. The best way is to simply incorporate the banner in SRL. That means, changing all coordinates constants and possibly hardcoded constants. Another fix has been proposed by Benland en made by Brandon, which is to simply offset the array passed to Simba but the size of the bar in pixels * 4. That works wonders, too. That way you have to change nothing, but it is a bit of a hack.


Could it be possible to Block that Image / Banner via hosts file or something like that?

Edit, sorry about above post, it was some what useless. I didn't realise that there was already 2 fixes made. I think that Hackish way would be better.



~Home

Justin

2012-07-12 07:58:59

From: Home
Could it be possible to Block that Image / Banner via hosts file or something like that?

~Home


Its built into the client. Chances are, it would be hard-coded into the Java applet.

Home

2012-07-12 08:01:58

From: [J]ustin
Its built into the client. Chances are, it would be hard-coded into the Java applet.


Ahh, I see. Thanks for your quick respond. Is there way to get Image links (Forum, support etc) used without messing with the applet?

~Home

Justin

2012-07-12 08:07:42

From: Home
Ahh, I see. Thanks for your quick respond. Is there way to get Image links (Forum, support etc) used without messing with the applet?

~Home


I am guessing they are built into the cache, therefore there would be no "image links" it would be something like


RandomAccessFile cache = new RandomAccessFile("./jagexcache/runescape/LIVE/main_file_cache.dat2", "r");
Cache ch = new Cache(cache, cache_idx, 0);
Map<String, Image> images = new HashMap<String, Image>();
for(int i=0; i < ch.getNumFiles(); i++) {
byte[] buffer = ch.getFile(i);
if(buffer == null) {
continue;
}
DataStream str = new DataStream(buffer.length, 0);
System.arraycopy(buffer, 0, str.inBuffer, 0, buffer.length);
String name = str.readString();
Image img = Toolkit.getDefaultToolkit().createImage(str.inBuffer, str.readOffset(), str.inBuffer.length - str.readOffset());
if(img != null) {
images.put(name, img);
}
}

Hazzah

2012-07-12 08:18:35

From: Shay
Me and Justin are having a helluva time slaying, blew through Mithril Dragons and Black Demons like they were nothing!


Sin doesn't slayer with me… But ohh wells. 7/100 Co-op points and 95 slayer. Your loss :P

Justin

2012-07-12 08:20:22

From: Hazzah
Sin doesn't slayer with me… But ohh wells. 7/100 Co-op points and 95 slayer. Your loss :P


Slaying with Sin makes tasks go so fast, you are the one missing out :P

speedster

2012-07-12 08:20:49

I must admit that the hack sounds a bit better - wish I knew how to use Smart 7.2 with Simba tough.

Justin

2012-07-12 08:21:31

From: speedster
I must admit that the hack sounds a bit better - wish I knew how to use Smart 7.2 with Simba tough.


What about for the people who don't use SMART?

jfishy

2012-07-12 08:36:34

How do you guys(the awesome devs) have the patience to deal with all the people who ask questions before reading the big bold red text on the first page?

speedster

2012-07-12 08:38:29

From: [J]ustin
What about for the people who don't use SMART?


Indeed that's a good observation and must be taken into account :ninja:

djborec

2012-07-12 08:39:01

I would like to start fixing method my script used. But I stoped on first ,because I do not know why the script does not even start. Is there something like debugger in SIMBA?

fumaor

2012-07-12 08:47:29

you have all time of the world, just do calm and good your work adminss ¡

Justin

2012-07-12 08:48:37

From: djborec
I would like to start fixing method my script used. But I stoped on first ,because I do not know why the script does not even start. Is there something like debugger in SIMBA?


Please… Read…

How to Fix:
If you do not know what you're doing: Don't spam this thread. Don't ask how to fix it.
All developers work FOR FREE and ON THEIR OWN TIME. There is no ETA so just wait patiently.

djborec

2012-07-12 09:08:02

From: [J]ustin
Please… Read…

How to Fix:
If you do not know what you're doing: Don't spam this thread. Don't ask how to fix it.
All developers work FOR FREE and ON THEIR OWN TIME. There is no ETA so just wait patiently.


Ok ,I am not spamming just asking if there is something like debuuger so I will know which methods does not work which does. And good luck to developers

Footy

2012-07-12 09:44:22

you can always use writeln('yadayada') if the function is succesful.

Foefoe

2012-07-12 09:47:51

Please fix it soon! THANKS!

Kyle Undefined

2012-07-12 09:50:02

From: Brandon
Someone tell me if this works: https://github.com/Brandon-T/SRL-5/zipball/master
You can view all the changes made here: https://github.com/Brandon-T/SRL-5/commit/a5454c59143312fb303e26ce635ec121b2bf82db

I updated everything but remember uptext functions don't work still. Gametab, all of them work. Scripts will need updating of course.

The way I did it:

Globals:


const //In-Game = IG. | Log-In = LI.
IGX = 0;
IGY = 50;
LIX = 0;
LIY = 22;

That way if this happens again, you simply change the offsets and bam everything fixed (Hopefully).

I tested all banking functions except withdrawing though that should work. I tested most game tab functions and I tested login/logout, GetMMDotsOnMS, Minimap functions, ToggleXPBar, MinimapLevels, SkillLevels, etc.. I Updated None of the setgraphics/audio functions. Everything else updated to use the offsets from the globals.Simba so you're going to see a shit load of X + IGX, Y + IGY in almost every function.

If something isn't working or you don't like the changes, let me know.

I think that's about it.. Oh and I had to change SmartGraphics to reflect the new client size. If it works for everyone and you like the changes then I'll send it as a pull request to the official SRL Include and hopefully they accept it and put it in the include or else we're all going to have to wait.

Anyway Good night all.


Instead of changing all the major files in the include, couldn't you just add the offsets inside of the Mouse/IntToBox/etc functions? I know the Find functions will have to change where they are called though.

euphemism

2012-07-12 09:54:31

From: Kyle Undefined
Instead of changing all the major files in the include, couldn't you just add the offsets inside of the Mouse/IntToBox/etc functions? I know the Find functions will have to change where they are called though.


I don't think that would work. (0, 20) is an actual position in the client, and if you called MMouse(0, 20, 0, 0) it might be a little unexpected to see SRL mousing to (0, 70).

Wizzup?

2012-07-12 10:04:59

From: Kyle Undefined
Instead of changing all the major files in the include, couldn't you just add the offsets inside of the Mouse/IntToBox/etc functions? I know the Find functions will have to change where they are called though.


That doesn't sound like a nice idea. However, if we are going to change a lot of coordinates, perhaps it may be an idea to make constants of most of them, even if they occur only once?

Kyle Undefined

2012-07-12 10:09:59

From: euphemism
I don't think that would work. (0, 20) is an actual position in the client, and if you called MMouse(0, 20, 0, 0) it might be a little unexpected to see SRL mousing to (0, 70).


Look at the code ggzz linked to on GitHub, his changes are basically doing that. He's doing it at the Mouse method calls.

From: Wizzup?
That doesn't sound like a nice idea. However, if we are going to change a lot of coordinates, perhaps it may be an idea to make constants of most of them, even if they occur only once?


I like his code for removing the bar from the SMART canvas much more, just commenting on how he could save time with the changes he linked to by doing it in the Mouse methods rather than at every Mouse method call.

If we can get the memory leak fixed on his code, we won't have to change that many coordinates, since the bar will be gone.

euphemism

2012-07-12 10:12:47

From: Kyle Undefined
Look at the code ggzz linked to on GitHub, his changes are basically doing that. He's doing it at the Mouse method calls.



I like his code for removing the bar from the SMART canvas much more, just commenting on how he could save time with the changes he linked to by doing it in the Mouse methods rather than at every Mouse method call.

If we can get the memory leak fixed on his code, we won't have to change that many coordinates, since the bar will be gone.


What happens with the in-browser client, though?

Abu

2012-07-12 10:30:55

I can only thank God that my computer broke and I didn't update my script, because it wouldn't have worked anyway.

Just a note, Jagex will look to incorporate a 'Hide' option for the bar, not that it matters really…


EDIT: Not that it needs to be 'stickied' because of all the attention, but the thread should be.

Master BAW

2012-07-12 10:41:53

Not to dissapoint or discourage you, but I am asking myself why such a small thing can result in such a long downtime. All that needs to be done is adding about 60 pixels to the top of each y-coordinate. This should easily be done in a function, but it seems that this is pretty hard, because you are al working a lont time on it now already, and there is no fix yet…

I can assume that this is almost nothing opposed to the optimus that is soon to come, so I ask myself: 'how long will it take to fix the optimus, if this little thing cost the devs more than 2 days?' ….

Really, why is it so hard? are all the coord hard-coded? do all de functions need a change? Or is there just too little people that know HOW to fix it?

Please don't see this as an offence, I really appreciate everyones hard work on this, but I just don't undestand why this little toolbar is so hard to fix.

Justin

2012-07-12 10:55:46

From: MasterCrimez
Not to dissapoint or discourage you, but I am asking myself why such a small thing can result in such a long downtime. All that needs to be done is adding about 60 pixels to the top of each y-coordinate. This should easily be done in a function, but it seems that this is pretty hard, because you are al working a lont time on it now already, and there is no fix yet…

I can assume that this is almost nothing opposed to the optimus that is soon to come, so I ask myself: 'how long will it take to fix the optimus, if this little thing cost the devs more than 2 days?' ….

Really, why is it so hard? are all the coord hard-coded? do all de functions need a change? Or is there just too little people that know HOW to fix it?

Please don't see this as an offence, I really appreciate everyones hard work on this, but I just don't undestand why this little toolbar is so hard to fix.


Not not as simple as it looks, Client dimensions need to be changed, SMART needs to be sent new height, width ect, TESTING needs to be done before stuff goes live to other users. The devs are doing this in their own time, they don't get paid to do stuff like this. They also have lives.

If you seem to think its easy, then why don't you develop your own fixes and apply them to your SRL?

xtrapsp

2012-07-12 10:58:49

From: MasterCrimez
Not to dissapoint or discourage you, but I am asking myself why such a small thing can result in such a long downtime. All that needs to be done is adding about 60 pixels to the top of each y-coordinate. This should easily be done in a function, but it seems that this is pretty hard, because you are al working a lont time on it now already, and there is no fix yet…

I can assume that this is almost nothing opposed to the optimus that is soon to come, so I ask myself: 'how long will it take to fix the optimus, if this little thing cost the devs more than 2 days?' ….

Really, why is it so hard? are all the coord hard-coded? do all de functions need a change? Or is there just too little people that know HOW to fix it?

Please don't see this as an offence, I really appreciate everyones hard work on this, but I just don't undestand why this little toolbar is so hard to fix.


it's cool everyone! All the devs can stop doing what they're doing! This guy has a diploma in pointing out the obvious! he knows what to do to fix it :D

Ashaman88

2012-07-12 11:00:54

From: MasterCrimez
Not to dissapoint or discourage you, but I am asking myself why such a small thing can result in such a long downtime. All that needs to be done is adding about 60 pixels to the top of each y-coordinate. This should easily be done in a function, but it seems that this is pretty hard, because you are al working a lont time on it now already, and there is no fix yet…

I can assume that this is almost nothing opposed to the optimus that is soon to come, so I ask myself: 'how long will it take to fix the optimus, if this little thing cost the devs more than 2 days?' ….

Really, why is it so hard? are all the coord hard-coded? do all de functions need a change? Or is there just too little people that know HOW to fix it?

Please don't see this as an offence, I really appreciate everyones hard work on this, but I just don't undestand why this little toolbar is so hard to fix.


Ton's of functions in the include are based off hard coded coord's, hard coded search boxes that is a lot of functions to adjust and there is not 100% agreement on the best way to address it

NKN

2012-07-12 11:01:46

From: MasterCrimez
Not to dissapoint or discourage you, but I am asking myself why such a small thing can result in such a long downtime. All that needs to be done is adding about 60 pixels to the top of each y-coordinate. This should easily be done in a function, but it seems that this is pretty hard, because you are al working a lont time on it now already, and there is no fix yet…

I can assume that this is almost nothing opposed to the optimus that is soon to come, so I ask myself: 'how long will it take to fix the optimus, if this little thing cost the devs more than 2 days?' ….

Really, why is it so hard? are all the coord hard-coded? do all de functions need a change? Or is there just too little people that know HOW to fix it?

Please don't see this as an offence, I really appreciate everyones hard work on this, but I just don't undestand why this little toolbar is so hard to fix.


Don't fret, he's on the case. He'll have our solution within five minutes, because it's so easy. :D Thanks bro!

Mister Snow

2012-07-12 11:08:49

Damn, talk about a gangbang… lol.

If you're wondering what's taking so long, just read through the thread. If EVERYTHING they said makes sense to you, then go ahead and fix it on your end, and you'll see you probably cannot.

If you think it's a simple process, just go try it. I've tried some of their suggestions and fixes myself… it's pretty in depth.

If you still want to bot, change your scripts to straight coordinates for the time being.

Master BAW

2012-07-12 11:10:26

From: [J]ustin
Not not as simple as it looks, Client dimensions need to be changed, SMART needs to be sent new height, width ect, TESTING needs to be done before stuff goes live to other users. The devs are doing this in their own time, they don't get paid to do stuff like this. They also have lives.

If you seem to think its easy, then why don't you develop your own fixes and apply them to your SRL?


Okay, thanks for the reply. I thought it would be easy, because the only thing really is the y-coords that need to change…

I can't fix it myself because I have never looked into the core functions of srl before. maybe I'll do this later but it doesn't seem to be the right time to start because everyone has enough on their heads

I just want to point out that from the outside it seems a very easy fix. I really hope that the optimus won't be 10 times harder… :(

Good luck everyone

Edit: As I told you I don't know much but when I had to fix this , i would probably do this: make two new CONSTANTS

- ADD_TOP
- ADD_LEFT

and add these two constants to all functions that need coordinates.
after you've done this, it's very easy to change it when there's something gonna change in the future. for example, with this toolbar added on top, we just have to change ADD_TOP to 60 or so… if it's gone, we can change it back to 0 right?

I don't think this will help becase you are probably already on your own fixes, but this is the way I would solve it…

Sin

2012-07-12 11:11:01

From: NKN
Don't fret, he's on the case. He'll have our solution within five minutes, because it's so easy. :D Thanks bro!


From: ashaman88
Ton's of functions in the include are based off hard coded coord's, hard coded search boxes that is a lot of functions to adjust and there is not 100% agreement on the best way to address it


From: xtrapsp
it's cool everyone! All the devs can stop doing what they're doing! This guy has a diploma in pointing out the obvious! he knows what to do to fix it :D


From: [J]ustin
Not not as simple as it looks, Client dimensions need to be changed, SMART needs to be sent new height, width ect, TESTING needs to be done before stuff goes live to other users. The devs are doing this in their own time, they don't get paid to do stuff like this. They also have lives.

If you seem to think its easy, then why don't you develop your own fixes and apply them to your SRL?


I do believe the power of Skype was just witnessed :rolleyes:

Justin

2012-07-12 11:12:49

From: Shay
I do believe the power of Skype was just witnessed :rolleyes:


That power o.O

xtrapsp

2012-07-12 11:13:46

From: MasterCrimez
Okay, thanks for the reply. I thought it would be easy, because the only thing really is the y-coords that need to change…

I can't fix it myself because I have never looked into the core functions of srl before. maybe I'll do this later but it doesn't seem to be the right time to start because everyone has enough on their heads

I just want to point out that from the outside it seems a very easy fix. I really hope that the optimus won't be 10 times harder… :(

Good luck everyone


Ok. Stop right here. We've just said it's more complex than just changing a few co-ords and you still went and said it's the only thing that needs changing.

2.
I can't fix it myself because I have never looked into the core functions of srl before. maybe I'll do this later but it doesn't seem to be the right time to start because everyone has enough on their heads


Stop making poor excuses, you weren't going to look at the 'core' files anyway because you don't understand them.

3. Why the hell mention optimus? This isn't an optimus thread

Varrock

2012-07-12 11:18:45

It seems like the client is loaded and is the proper size, however i get errors in a new tab titled smart. so we should just wait patiently for the bot to be updated. there is no rush we dont have to always be botting.

Varrock

2012-07-12 11:22:52

***Corection*** sorry SMART is working its just SRL that is still being worked on. Thank you everyone for your hard work and dedication:)

Kampf Gewehr

2012-07-12 11:25:20

Hey guys thanks for working to fix this.

Wizzup?

2012-07-12 11:25:26

For uptext on different coordinates (default is 7,7):


function rs_GetUpText: String; {$IFDEF LAPE}override;{$ENDIF}
begin
result := GetUpTextAtEx(7+foo, 7+bar, True);
end;

Master BAW

2012-07-12 11:25:28

From: xtrapsp
Ok. Stop right here. We've just said it's more complex than just changing a few co-ords and you still went and said it's the only thing that needs changing.

I still don't understand why it will be so hard :o To my knowledge the only thing that's changed is that there's a toolbar above runescape now, so all the y-coords need an xamount added?… If i'm wrong, sorry, I only want to learn and help.

Stop making poor excuses, you weren't going to look at the 'core' files anyway because you don't understand them.

How can you know? :/ I am learning SRL for about a month now but I didn't have the time yet to look into those functions… but maybe I will soon :)


3. Why the hell mention optimus? This isn't an optimus thread

Okay sorry about that, but I thought this may be the 'start' of optimus… nvm ;)


E: As I told you I don't know much, but when I had to fix this , i would probably do this: make two new CONSTANTS

- ADD_TOP
- ADD_LEFT

and add these two constants to all functions that need coordinates.
after you've done this, it's very easy to change it when there's something gonna change in the future. for example, with this toolbar added on top, we just have to change ADD_TOP to 60 or so… if it's gone, we can change it back to 0 right?

I don't think this will help becase you are probably already on your own fixes, but this is the way I would solve it…

Justin

2012-07-12 11:28:09

From: Wizzup?
For uptext on different coordinates (default is 7,7):


function rs_GetUpText: String; {$IFDEF LAPE}override;{$ENDIF}
begin
result := GetUpTextAtEx(7+foo, 7+bar, True);
end;


Thanks Wizzup? !

xtrapsp

2012-07-12 11:30:26

From: MasterCrimez
I still don't understand why it will be so hard :o To my knowledge the only thing that's changed is that there's a toolbar above runescape now, so all the y-coords need an xamount added?… If i'm wrong, sorry..

E: As I told you I don't know much, but when I had to fix this , i would probably do this: make two new CONSTANTS

- ADD_TOP
- ADD_LEFT

and add these two constants to all functions that need coordinates.
after you've done this, it's very easy to change it when there's something gonna change in the future. for example, with this toolbar added on top, we just have to change ADD_TOP to 60 or so… if it's gone, we can change it back to 0 right?

I don't think this will help becase you are probably already on your own fixes, but this is the way I would solve it…


Ok kid, fix it. go. if your soooo smart why isnt it done? BECAUSE ITS MORE COMPLICATED -.-' it's been explained over and over. seriously if your trolling you got me mad.

Master BAW

2012-07-12 11:35:00

From: xtrapsp
Ok kid, fix it. go. if your soooo smart why isnt it done? BECAUSE ITS MORE COMPLICATED -.-' it's been explained over and over. seriously if your trolling you got me mad.


Okay , i'm not trolling, only trying to help. I'll try to fix it for my scripts now. If it works, I'll post the solution here.:spongebob:

Kyle Undefined

2012-07-12 11:52:00

From: MasterCrimez
Okay , i'm not trolling, only trying to help. I'll try to fix it for my scripts now. If it works, I'll post the solution here.:spongebob:


FYI, I pushed an update last night that updated the coords for all the constants (Thanks to Silent Spy), and I haven't heard a thing about it working. There's your answer :)

Footy

2012-07-12 11:54:20

Im not sure exactly what you mean kyle, but login and gametab dont work.

Brandon

2012-07-12 11:54:52

Ahh well I'm awake now.. The reason I did not offset just the mouse functions which would probably be the one easiest possible fix is because if I did that then I'd have to do:


if (FoundBar) then //searches for the bitmap of the bar at the top.
begin
X := X + Offset;
Y := Y + Offset;
end;

That means every call to the mouse function you'd be searching for the bar and I thought that'd be ridiculous. OR I'd have to do:


//In SetupSRL, call IgnoreBar which will search once and offset the target pointer.
//Then in the mouse function:

If (LoggedIn) then
begin
X := X + XOffset;
Y := Y + YOffset;
end else
IgnoreBar; //Resets It To Normal. If Reset, Upon Loggin, Offset again.

With this, every call to the mouse function will be checking if we're loggedin. If we aren't, reset the pointer to normal.

Kyle Undefined

2012-07-12 11:56:32

From: Foooty
Im not sure exactly what you mean kyle, but login and gametab dont work.


All the global constants that control the coordinates were updated to add the 50px bump. If it was such an easy fix, that would of taken care of it.

EDIT: ggzz, The bar always shows for me when I'm on the login page, is it not showing for people?

Brandon

2012-07-12 11:59:34

From: Kyle Undefined
All the global constants that control the coordinates were updated to add the 50px bump. If it was such an easy fix, that would of taken care of it.

EDIT: ggzz, The bar always shows for me when I'm on the login page, is it not showing for people?


Nope. The bar only shows for me when I'm logged in. If not then the client gets pushed back up. So..

Login: Client pushes down the screen by 50.
Not LoggedIn: Client Pushed down the screen by 22.

bricks

2012-07-12 12:03:59

Love to see all of you coming together and using your minds to help others…If I had the knowledge I would as well.

Master BAW

2012-07-12 12:09:59

From: Kyle Undefined
FYI, I pushed an update last night that updated the coords for all the constants (Thanks to Silent Spy), and I haven't heard a thing about it working. There's your answer :)


you mean these constants?
{ const MMX1, MMY1, MMX2, MMY2;
Description: MiniMap Edge Points. }
const
MMX1 = 550;
MMY1 = 8;
MMX2 = 703;
MMY2 = 161;

{ const MMCX, MMCY;
Description: MiniMap Centre Point. }
const
MMCX = 627;
MMCY = 85;

{ const MSX1, MSY1, MSX2, MSY2;
Description: Main Screen EdgePoints. }
const
MSX1 = 4;
MSY1 = 4;
MSX2 = 515;
MSY2 = 337;

{ const MSCX, MSCY;
Description: Main Screen Centre Points. }
const
MSCX = 259;
MSCY = 170;

{ const MIX1, MIY1, MIX2, MIY2;
Description: Inventory EdgePoints. }
const
MIX1 = 547;
MIY1 = 202;
MIX2 = 737;
MIY2 = 466;

{ const MICX, MICY;
Description: Inventory Centre Points. }
const
MICX = 642;
MICY = 334;

{ const MCX1, MCY1, MCX2, MCY2;
Description: Chat Screen EdgePoints. }
const
MCX1 = 4;
MCY1 = 342;
MCX2 = 514;
MCY2 = 475;

{ const MCCX, MCCY;
Description: Chat Screen Centre Points. }
const
MCCX = 250;
MCCY = 401;

{ const MBX1, MBY1, MBX2, MBY2;
Description: BankScreen EdgePoints (where you click the items, does not include tabs). }
const
MBX1 = 26;
MBY1 = 84;
MBX2 = 480;
MBY2 = 292;

{ const DBX1, DBY1, DBX2, DBY2;
Description: Deposit box edgepoints (only where the item appear) }
const
DBX1 = 91;
DBY1 = 57;
DBX2 = 443;
DBY2 = 262;


Well, it's obvious that that won't be enough because we still need two more variables…

ADD_TOP
and
ADD_LEFT

(Or as I saw here below someone call it: Xoffset and Yoffset…) :)

The only problem I have just thought of is, that the add_top and add_left can change. For example the add top is different when we logged in.


I would do something like this, before the SRL include:

program new;

var
ADD_TOP, ADD_LEFT : integer;

procedure DetermineAdd;
begin

//Here it somehow has to determine if we are logged in or not. If we are logged in, the add_top is about 50 or so... so

if(WeLoggedIn) then
begin
ADD_TOP := 50;
ADD_LEFT := 0;
end else begin
ADD_TOP := 20;
ADD_LEFT := 0;
end;

end;

In every function that has hardcoded coords, we should add something like this:

I did this for example to the function that determines where to go with the mouse for a skill-mouseover:
function SkillCoords(Row, Column : ShortInt): TPoint;
begin
Result := Point(576+ADD_LEFT + (62 * (Column - 1)), 213+ ADD_TOP + (28 * (Row - 1)));
end;

We only need to do this to the "CORE" functions because we must not have any overlap… (The ADD_TOP only ahs to be added once…)

So maybe this above isn't a good example… It should only be added in the search-color functions and the mousemovement function… but I don't exactly know which functions are those.

In the end we need to determine the add_top and add_left every time we think it might have changed.

that is… IN the beginning… and after something failed that should not have failed! :)

So in the script it should be like this:


begin
DetermineAdd;

LoginPlayer;

DetermineAdd;

//rest of script;

end.

Brandon

2012-07-12 12:23:43

From: MasterCrimez
….


That's exactly what I did…

Guess no one approves of it so I'll try the bitmap hacky crap.

Master BAW

2012-07-12 12:38:21

From: Brandon
That's exactly what I did…

Guess no one approves of it so I'll try the bitmap hacky crap.


Okay , didn't know that. Then I did it for nothing :( What exactly doesn't the community approve? The part of the DetermineAdd of the part of xOffset and yOffset?


Another point I want to make:
We need to be prepared of futher changes runescape makes. For example, maybe runescape will randomly add a different amount of pixels on the top and on the left every time you load RS… (for example 1-20 pixels on the left, and 1-20 pixels on the top) Then it would be different every time. What do we do then?

I think all we need to do is:
1. Add the variables xOffset and yOffset to all procedures and functions in SRL that have the hardcoded co-ords.
2. Make a good procedure that determines the offset…. (procedure DetermineOffset; )

It's at simple as that I believe :redface:

[XoL]

2012-07-12 12:39:58

Why not just remove it?
You can remove the element, or would that be bad/impossible? (Sorry not to familiar with Java, its been a while)

Kyle Undefined

2012-07-12 12:59:33

From: Brandon
That's exactly what I did…

Guess no one approves of it so I'll try the bitmap hacky crap.


I see now why you did the changes to every call, instead of the base method. The bar shows up for me when I go to login, don't know why it's not there for you.

Only thing that we would have to fix would be the UpText, which Wizzup? posted how to.

It's not that nobody approves of it, where did you even get that idea from anyway?, we are just exploring all the options and brainstorming :)

From: MasterCrimez
Okay , didn't know that. Then I did it for nothing :( What exactly doesn't the community approve? The part of the DetermineAdd of the part of xOffset and yOffset?


Another point I want to make:
We need to be prepared of futher changes runescape makes. For example, maybe runescape will randomly add a different amount of pixels on the top and on the left every time you load RS… (for example 1-20 pixels on the left, and 1-20 pixels on the top) Then it would be different every time. What do we do then?

I think all we need to do is:
1. Add the variables xOffset and yOffset to all procedures and functions in SRL that have the hardcoded co-ords.
2. Make a good procedure that determines the offset…. (procedure DetermineOffset; )

It's at simple as that I believe :redface:


1. ggzz has already done this. As stated before, we are brainstorming ideas.

2. You don't need the DetermineAdd at all, it would be pointless to add it since we know how many pixels the bar takes up.

Noob King

2012-07-12 13:18:56

Kyle is it not possible to remove the bar? Or is it in the applet now? I haven't had a chance to look at it.

Master BAW

2012-07-12 13:36:41

With this update runescape has done, we
should be prepared for more. Maybe they
will add a random amount of pixels to
the top and the left, and maybe it will
even change every hour or so. A human
wouldn't care about that, but a bot will
fail, if it doesn't determine the offset
now and then.

We have to do two things:

1. we have to make the procedure
DeterminePixelVars. See below. This
procedure determines the pixel
constants… At least, they are now
constant… From now on, I think it
would be better to see them as
variables…

2. we have to use these variables in all
the SRL functions! From what I have seen
now, a lot of co-ordinates are hard
coded. The constants are not being used.
This is something that will take a lot
of time, because we have to look through
all the functions that are clicking on
hard-coded co-ordinates, or looking for
colors on hardcoded coords

I don't know if my help is apreciated
right now , because when I started
talking in this thread, it seemed a lot
of people got annoyed by me, but I want
to make a start anyway with point 1.

function LoggedIn: Boolean; forward;

var
OX, OY,
MMX1, MMY1, MMX2, MMY2, MMCX, MMCY, MSX1, MMY1, MSX2, MSY2, MSCX, MSCY,
MIX1, MIY1, MIX2, MIY2, MICX, MICY, MCX1, MCY1, MCX2, MCY2, MCCX, MCCY,
MBX1, MBY1, MBX2, MBY2, DBX1, DBY1, DBX2, DBY2: integer;


procedure DeterminePixelVariables;
begin

{ vars OX, OY;
Description: Offset from the left (x) and Offset from the top (y) }
OX := 0;
if LoggedIn then OY := 60 else OY := 20;
{Please NB: this is just a quick fix. We can make this better.
I will return to this subject later. //MasterCrimeZ }


{ vars MMX1, MMY1, MMX2, MMY2;
Description: MiniMap Edge Points. }

MMX1 := 550+OX;
MMY1 := 8+OY;
MMX2 := 703+OX;
MMY2 := 161+OY;

{ vars MMCX, MMCY;
Description: MiniMap Centre Point. }
MMCX := round((MMX1+MMX2)/2);
MMCY := round((MMY1+MMY2)/2);

{ vars MSX1, MSY1, MSX2, MSY2;
Description: Main Screen EdgePoints. }
MSX1 := 4+OX;
MSY1 := 4+OY;
MSX2 := 515+OX;
MSY2 := 337+OY;

{ vars MSCX, MSCY;
Description: Main Screen Centre Points. }
MSCX := round((MSX1+MSX2)/2);
MSCY := round((MSY1+MSY2)/2);

{ vars MIX1, MIY1, MIX2, MIY2;
Description: Inventory EdgePoints. }
MIX1 := 547+OX;
MIY1 := 202+OY;
MIX2 := 737+OX;
MIY2 := 466+OY;

{ vars MICX, MICY;
Description: Inventory Centre Points. }
MICX := round((MIX1+MIX2)/2);
MICY := round((MIY1+MIY2)/2)

{ vars MCX1, MCY1, MCX2, MCY2;
Description: Chat Screen EdgePoints. }
MCX1 := 4+OX;
MCY1 := 342+OY;
MCX2 := 514+OX;
MCY2 := 475+OY;

{ vars MCCX, MCCY;
Description: Chat Screen Centre Points. }
MCCX := round((MCX1+MCX2)/2);
MCCY := round((MCY1+MCY2)/2)

{ vars MBX1, MBY1, MBX2, MBY2;
Description: BankScreen EdgePoints (where you click the items, does not include tabs). }
MBX1 := 26+OX;
MBY1 := 84+OY;
MBX2 := 480+OX;
MBY2 := 292+OY;

{ vars DBX1, DBY1, DBX2, DBY2;
Description: Deposit box edgepoints (only where the item appear) }
DBX1 := 91+OX;
DBY1 := 57+OY;
DBX2 := 443+OX;
DBY2 := 262+OY;

end;

That's what I just made. This is a good start I think because when runescape gets updated and adds in random offsets, we can still make our scripts run. ;)


Edit:
With my solution the only thing you need to do is:

1. add this include with the procedure in it and the vars into the SRL include….
2. add DeterminePixelVariables; in the SetupSRL
3. add DeterminePixelVariables; at the begin AND end of LoginPlayer
4.(not needed: add DeterminePixelVariables every now and then into your loop, but if we do it at the end of LoginPlayer, that's also fine.)

so no changes to the scripts at all… only to SRL

Except for the hardcoded coords in scripts ofcousre.. everyone should use the constants for their coords: such as MSX1+70 instead of 70 (Or OX+70)


Greetz,
MasterCrimeZ

Noob King

2012-07-12 13:40:31

From: MasterCrimez
With this update runescape has done, we
should be prepared for more.
……
…..
Greetz,
MasterCrimeZ


I don't really think that is necessarily important to do right now, if ever. If you spend all your time 'fixing' stuff you 'think' might happen, you will waste a lot of time. I haven't noticed any randomness in the pixels, nor do I think jagex is going to do that. As well, I don't remember this kind of stuff happening too frequently, so it will probably stay like this for a good while.

hunnyitsme3

2012-07-12 13:48:00

how is this all going by the way I thought y'all were going to be done with this yesterday or today?

Home

2012-07-12 13:52:44

Why not just edit Client Dimensions..

This code is related to it. From Simba sauce.

 while GetAsyncKeyState(VK_LBUTTON) <> 0 do
begin;
Handle:= WindowFromPoint(Mouse.CursorPos);
if (Handle <> TempHandle) and (Handle <> EdgeForm.Handle) then
begin;
GetWindowRect(Handle, TargetRect);
W :=TargetRect.Right - TargetRect.Left+1;
H :=TargetRect.Bottom - TargetRect.Top+1;
DragForm.SetBounds(TargetRect.Left,TargetRect.top,W,H);//Draw the transparent form

SetWindowRgn(EdgeForm.Handle,0,false);//Delete the old region
Region := CreateRectRgn(0,0,w-1,h-1); //Create a full region, of the whole form
CombineRgn(Region,Region,CreateRectRgn(EdgeSize,EdgeSize,w-1-(edgesize),h-1-(edgesize)),RGN_XOR); //Combine a the 2 regions (of the full form and one without the edges)
SetWindowRgn(edgeform.Handle,Region,true);//Set the only-edge-region!
EdgeForm.SetBounds(TargetRect.Left,TargetRect.top,W,H);//Move the form etc..
TempHandle := Handle;
end;
Application.ProcessMessages;
Sleep

I hope that you all get my point :P



~Home

BenLand100

2012-07-12 14:07:10

How about this: instead of brainstorming ways of hacking a fix together by adding offsets to what we already have, we just start fixing things?

Obviously, as people have already done, we need to fix the main screen constants. Someone then needs to simply fix the login screen (and related) functions so that they work with or without the bar (should not be difficult, search for a bitmap, if you have to, or find some way to determine the proper coordinates. Wizzup posted a fix for uptext, someone slam that into SRL. At that point, everything should be fixed except problems with individual scripts.

I suspect MOST of what I said is done already, but if not, someone with commit access to SRL (or someone willing to write pull requests) should get on it.

Brandon: The image array stuff is neat (yes, I know it was my idea) but it's really trickery and will add more problems later (such as having to offset EVERYTHING that also uses coordinates, i.e. mouse movements), so we should abandon that. I think (I didn't look) that you have gone through and made sure everything coord based is reference to the global constants? That's 90% of the job.

Since the game screen (while you are logged in) is no different except for having the bar, literally everything should be fixed by changing the coordinates. The login screen functions are a bit more tricky since it doesn't (always?) have the bar. Someone just needs to fix them.

We should stop looking for an 'elegant' or 'neat' solution and implement the easiest thing that works.

E: On that note, no dynamic screen constants. Assume screen constants are only valid if logged in and fix non-logged-in functions to work in whatever way necessary.

Nebula

2012-07-12 14:12:53

From: Home
Why not just edit Client Dimensions..

This code is related to it. From Simba sauce.

 while GetAsyncKeyState(VK_LBUTTON) <> 0 do
begin;
Handle:= WindowFromPoint(Mouse.CursorPos);
if (Handle <> TempHandle) and (Handle <> EdgeForm.Handle) then
begin;
GetWindowRect(Handle, TargetRect);
W :=TargetRect.Right - TargetRect.Left+1;
H :=TargetRect.Bottom - TargetRect.Top+1;
DragForm.SetBounds(TargetRect.Left,TargetRect.top,W,H);//Draw the transparent form

SetWindowRgn(EdgeForm.Handle,0,false);//Delete the old region
Region := CreateRectRgn(0,0,w-1,h-1); //Create a full region, of the whole form
CombineRgn(Region,Region,CreateRectRgn(EdgeSize,EdgeSize,w-1-(edgesize),h-1-(edgesize)),RGN_XOR); //Combine a the 2 regions (of the full form and one without the edges)
SetWindowRgn(edgeform.Handle,Region,true);//Set the only-edge-region!
EdgeForm.SetBounds(TargetRect.Left,TargetRect.top,W,H);//Move the form etc..
TempHandle := Handle;
end;
Application.ProcessMessages;
Sleep

I hope that you all get my point :P



~Home


I don't know what any of that means, are you saying to just chop off the new area created by the update, and just make it how it used to be? like this:
Don't see why that wouldn't work.

Brandon

2012-07-12 14:17:28

Well this is my last and probably final suggestion: https://github.com/Brandon-T/SRL-5
We now have 3 options:

The offsets I suggested before where all values had + 50 added to them and + 22 on login screen.. Only thing required fixing was uptext. That's it.
This option that I'm offering now described below. Where the only things that are messed up is stuff like GetMousePos. All finder functions read from the offsetted value automatically. Thus I am able to bot right now since everything else works.

Or Someone else's suggestion in the thread.

I used the Pointer Offset and offset the MMouse function. That's about it. All static values automatically reflect the changes.

For example I don't have to change all the values in any include. The only includes actually changed were login.simba and player.simba.

Globals hold the pointer offset function and the login and player files will call them when necessary.

This means the entire SRL include still works. I changed nothing else. Uptext functions work too but like I said the downside is getmousepos and functions that return coordinates base on the client's dimensions. All finder functions work normally as they should and scripts will require the least amount of updates.

basically if your script uses get mousepos and relies on it heavily then every time you call getmousepos just add 50 to the y values.

Wizzup?

2012-07-12 14:19:07

Guys, do we really want to hardcode offsets in the mouse function?
E: Unless that is required due to the offset with the pointer as well.

Still, it seems silly to restrict a part of the client.

mynameisgeorge

2012-07-12 14:21:30

Good Job Brandon!

Brandon

2012-07-12 14:25:11

From: Wizzup?
Guys, do we really want to hardcode offsets in the mouse function?
E: Unless that is required due to the offset with the pointer as well.

Still, it seems silly to restrict a part of the client.


Yeah I know.. thats why I suggested two options. A: where all values have 50 added to them which I did a couple pages back. Or B: where the crap is offsetted in the mouse function itself. Or C: Someone else's ideas :S

Wizzup?

2012-07-12 14:27:56

From: Brandon
Yeah I know.. thats why I suggested two options. A: where all values have 50 added to them. Or B: where the crap is offsetted in the mouse function itself. Or C: Someone else's ideas :S


If you mean by adding, adding it manually, then yes, that is sound. It just means going through a lot in SRL. Perhaps introduce constants for all the coordinates along the way. Perhaps even a constant for the size of the bar on top, so we can change that later if they decide to mess with us again.


const
_RS_BAR_SIZE = 50;

function _bar(y: integer): integer;
begin
result := y + _RS_BAR_SIZE;
end;

function: LoggedIn: boolean;
begin
result := getcolor(1337, _bar(1337)) = foo;
end;

I think you get the idea. That way you could keep the old constants, and just dynamically add something to it.

Brandon

2012-07-12 14:30:59

From: Wizzup?
If you mean by adding, adding it manually, then yes, that is sound. It just means going through a lot in SRL. Perhaps introduce constants for all the coordinates along the way. Perhaps even a constant for the size of the bar on top, so we can change that later if they decide to mess with us again.

I think you get the idea. That way you could keep the old constants, and just dynamically add something to it.


Like this?: http://villavu.com/forum/showpost.php?p=1067435&postcount=240

Master BAW

2012-07-12 14:34:51

I got my script to login :)
Yay:D

Wizzup?

2012-07-12 14:35:03

From: Brandon
Like this?: http://villavu.com/forum/showpost.php?p=1067435&postcount=240


Yes! But drop the addition (+ Some_Const) and turn it into a function that does the same. And make the function a short name, but also a name that's not really used, like _rsbar or something. :)

Wizzup?

2012-07-12 14:36:43

Actually, Brandon. Ignore my previous suggestion on the name. I suggest giving it a formal name so scripts can rely on it too. :)

SRL_BarCoord() or something.

NKN

2012-07-12 14:37:02

function FindLogin(var x,y : Integer) : Boolean;
var
a : Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS : Integer;
Box : TBox;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.04,1.21);
FindColorsSpiralTolerance(x,y,TPA,880805,1,1,553,502,9);
ATPA := TPAtoATPAEx(TPA,15,15);
for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
Box := IntToBox((MP.x - 20),(MP.y - 20),(MP.x + 20),(MP.y + 20));
SMART_DrawBoxEx(True,Box,clYellow);
x := MP.x; y := MP.y;
Result := True
SMART_ClearCanvas;
Break;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2,0.2);
end;
procedure LoginNew;
var
i,x,y:integer;
begin
WaitFindColor(x,y,12941643,25,332,345,439,375,120000);//Find the Login With Facebook button, only blue thing like that.
if(FindLogin(x,y)) then
begin
Mouse(x,y - 90,2,2,mouse_left);
TypeSend(Players[0].Name);
TypeSend(Players[0].Pass);
while(not(FindColorTolerance(x,y,2840170,257,493,506,526,5))) do
begin
wait(1000);
end;
Mouse(x,y,4,4,1);
end;
end;

That's what I made to login. :(

Don't know if it'll help, just trying to contribute. :D

Brandon

2012-07-12 14:45:13

From: Wizzup?
Actually, Brandon. Ignore my previous suggestion on the name. I suggest giving it a formal name so scripts can rely on it too. :)

SRL_BarCoord() or something.


Uhh you lost me there.. Make a function to do it? Or just Rename the + IGX, + IGY to something like:

+ RSBarIX, + RSBarIY?

If I have to make a function it'd have to be two of them. One for InGame and one for Login.

Master BAW

2012-07-12 14:45:13

Is there a way to change the size of the SMART in smart 6.9?

2496

2012-07-12 14:49:52

Yoooo, whats goin onnn, why you no fix bot? I need to bot

NKN

2012-07-12 14:51:32

From: 2496
Yoooo, whats goin onnn, why you no fix bot? I need to bot



Fix it yourself, smart one.
The devs have lives here, their not people who sit around and do nothing all day. You want a fix, you help. If you can't help, kindly, shut up and don't spam with useless posts telling the devs to hurry up. They're working on it.

Wizzup?

2012-07-12 14:52:37

From: Brandon
Uhh you lost me there.. Make a function to do it? Or just Rename the + IGX, + IGY to something like:

+ RSBarIX, + RSBarIY?

If I have to make a function it'd have to be two of them. One for InGame and one for Login.


Instead of:

GetColor(x, y + FOO_CONST)
Do:


GetColor(x, SRL_BarCoord(y));

Where



function SRL_BarCoord(y: integer): integer;
begin result := y + FOO_CONST; end;

Main

2012-07-12 14:53:01

yeah and simba still works just write your own login and fix the points of mscx..etc yourself:)

SeaBass

2012-07-12 14:53:56

Thanks for the tip Justin!

NKN

2012-07-12 14:54:10

From: Main
yeah and simba still works just write your own login and fix the points of mscx..etc yourself:)

Thank you captain obvious. :)

Nebula

2012-07-12 14:54:28

From: MasterCrimez
Is there a way to change the size of the SMART in smart 6.9?

This.

If it is possible (Don't see why it wouldnt be…), the easiest fix would be to just cut off the top of the screen, removing the Home/Support/Forums/Clans bar. Then we would be left with how everything originally was. No need to edit SRL, the mouse function, or anything other than the client size/position.

Brandon

2012-07-12 15:01:14

From: Wizzup?
…


I see. But I have to do two of those then or something like:


function SRL_BarCoord(y: integer; InGame: Boolean): integer;
begin
if (InGame) then
result := y + InGame_Const //+ 50.
else
result := y + Login_Const; //+ 22.
end;

@Everyone else saying cut this off and cut that off.. Mind saying how?

Home

2012-07-12 15:02:11

So there isn't a way to change Client Dimension on fly?

That's how coordinates would not have to be changed.

~Home

Master BAW

2012-07-12 15:02:50

@Nebula I don't really mean it that way but indeed that would be the easiest fix, but unfortunately, the bar isn't always there. when you're not logged in, there is no bar on top….


But I just try to get a bigger smart window so that I can see everything after logged in… :/

{*******************************************************************************
procedure SetupSRL;
by: SRL Dev Team
Last Edit: 22 June 2010 -- Nava2
Description: Sets up all variables needed to run SRL.
*******************************************************************************}

procedure SetupSRL;
var
t: Integer;
begin
{$IFNDEF SMART}
{$IFDEF SIMBA}
if (not IsTargetValid) then
srl_Warn('SetUpSRL', 'Target client is not valid! ' +
'Drag the crosshairs over the target client.', warn_Terminate);
{$ENDIF}
{$ENDIF}
SetupBoxes; //Sets up box variables in globals.simba
t := GetTimeRunning;
MouseSpeed := 15;
{$IFDEF UseLaptopMouse}LMouse_MissChance := 75;{$ENDIF}
CheckHPFirst := True;
Reincarnate := False;
TalkAfterRandoms := False;
RoadColor := 0;
WaterColor := 0;
BankColor := 0;

// these need to be removed eventually (no longer used)
SRL_OnFindRandomCall := nil;
LampSkill := 'mining';

//SetUpSRLReport;
LoadCosineArrays;
SymbolAccuracy:= 0.8;
LoadSRLBitMaps;
LoadSRLFonts;
{$IFNDEF SRL_RANDOMS_TEST}
_SetRandoms();
{$ENDIF}
SetupSRLAutoResponder;
SRL_RandomScreenShot := False;
UseFindMod := True;
LogoutOnMod := True;
UseFindTrade := True;
UseAutoResponder := True;
GraphicsSet := False;
AllowPVP := False;
SRL_DisableIPLog := false;
SRL_SavePath := includePath + 'SRL/logs/';
SRL_StartTime := theDate(DATE_MONTH)+' at '+theTime;
WarnSensitivity := -2;
SetupAutoColors;

{$IFDEF LoadExtraFonts}
srl_UpdateFonts(srl_FontsUp2date);
{$ENDIF}

AddOnTerminate('FreeSRL');
SetSupressExceptions(true);
Writeln ('SRL Compiled in '+ IntToStr(GetTimeRunning - t) + ' msec');

{$IFDEF SRL_SMART}
if (Smart_Server = 0) then
begin
Smart_Server := RandomWorld(Smart_Members, False);
Smart_Signed := True;
Smart_SuperDetail := False;
end;
Writeln('SMART Initialized.' + #10 + 'Loaded: Server ' + IntToStr(Smart_Server) + ', Members: ' + BoolToStr(Smart_Members)
+ ', Signed: ' + BoolToStr(Smart_Signed) + ', Super Detail: ' + BoolToStr(Smart_SuperDetail) + '.');
SmartSetupEx(Smart_Server, Smart_Members, Smart_Signed, Smart_SuperDetail);
SetTargetArray(SmartImageArray, 765,603);//503
repeat
Wait(100);
if (GetTimeRunning - t) > 120000 then
Break;
until(RSReady);
{$ELSE}
Smart_Server := 0;
Smart_Members := false;
Smart_Signed := True;
Smart_SuperDetail := false;
{$ENDIF}

SetupGauss();
end;

see this line:
 SetTargetArray(SmartImageArray, 765,603);//503

I tried this, but the smart still is 503pixels high :( Please someone tell me where to change the smart size, or tell me taht this is not possible until smart 7.x

hunnyitsme3

2012-07-12 15:03:59

so how can we ourselves make simba work, because to me the program is still working but it doesnt login on its own or choose a world, so what can i edit the code for a temp?

Wizzup?

2012-07-12 15:05:05

From: Brandon
I see. But I have to do two of those then or something like:


function SRL_BarCoord(y: integer; InGame: Boolean): integer;
begin
if (InGame) then
result := y + InGame_Const //+ 50.
else
result := y + Login_Const; //+ 22.
end;


The bar changes size? That's just silly.

I'm thinking of another solution too, but it's somewhat similar to your offset solution. I could add a function to Simba ``SetClientOffset'' that enforces an offset for all functions. Mouse, Find, Get, etc. All functions. It's probably not a lot of code but I'm not sure if it will work with EIOS. And everyone will have to jump to 0.99 straight away, too, imho. I don't really want to release another 98x version.

By the way, I'm in no particular hurry to bring back the ``bot'' to the masses. I don't feel we should purposely delay a fix, but don't rush it. Think about the best and worthwhile solution. If we do it wrong now, we will suffer because of that later on.

E: Home, what I just suggested is also what you said, I think. :)
E2: Also, what I just proposed is just another solution. If the bar really changes sizes, we first need to think of a way to quickly identify if the bar is still there. I think a GetColor should suffice for that. Or perhaps a few. You could try to detect this in LoggedIn and change the offset depending on whether you're logged in or not.

Master BAW

2012-07-12 15:06:04

From: hunnyitsme3
so how can we ourselves make simba work, because to me the program is still working but it doesnt login on its own or choose a world, so what can i edit the code for a temp?


there's no temporary fix yet that's easy enough to explain to everyone. I'm getting the client to login now, but unfortunately after logging in the bar appears, and then the SMART is too small :(

Nebula

2012-07-12 15:06:34

From: MasterCrimez
@Nebula I don't really mean it that way but indeed that would be the easiest fix, but unfortunately, the bar isn't always there. when you're not logged in, there is no bar on top….

Update all your Simba stuff. The SMART client was enlarged.

I know that the bar isn't there when you're logged out. The only thing that would have to be changed are the things related to logging in.

If I knew java/c/whatever SMART is programmed in I would just fix it myself…

Master BAW

2012-07-12 15:11:45

From: Wizzup?
The bar changes size? That's just silly.

I'm thinking of another solution too, but it's somewhat similar to your offset solution. I could add a function to Simba ``SetClientOffset'' that enforces an offset for all functions. Mouse, Find, Get, etc. All functions. It's probably not a lot of code but I'm not sure if it will work with EIOS. And everyone will have to jump to 0.99 straight away, too, imho. I don't really want to release another 98x version.

By the way, I'm in no particular hurry to bring back the ``bot'' to the masses. I don't feel we should purposely delay a fix, but don't rush it. Think about the best and worthwhile solution. If we do it wrong now, we will suffer because of that later on.


This seems to be a good solution? :redface: Please read
http://villavu.com/forum/showpost.php?p=1067747&postcount=314

2496

2012-07-12 15:12:50

From: NKN
Fix it yourself, smart one.
The devs have lives here, their not people who sit around and do nothing all day. You want a fix, you help. If you can't help, kindly, shut up and don't spam with useless posts telling the devs to hurry up. They're working on it.


Please fix scripts!!!!!!!!!!!!

I am losing exp!!!!!!!

hunnyitsme3

2012-07-12 15:13:58

can somebody give me a link directing me to a SMART update? every time smart opens for me it says I'm on 6.9, and everyone here says there on 7.X…..

Brandon

2012-07-12 15:15:54

From: Wizzup?
The bar changes size? That's just silly.

I'm thinking of another solution too, but it's somewhat similar to your offset solution. I could add a function to Simba ``SetClientOffset'' that enforces an offset for all functions. Mouse, Find, Get, etc. All functions. It's probably not a lot of code but I'm not sure if it will work with EIOS. And everyone will have to jump to 0.99 straight away, too, imho. I don't really want to release another 98x version.

By the way, I'm in no particular hurry to bring back the ``bot'' to the masses. I don't feel we should purposely delay a fix, but don't rush it. Think about the best and worthwhile solution. If we do it wrong now, we will suffer because of that later on.


Indeed it does change. Everything changed.

1: When not logged in the offset is 22 because of this stupid black thing you see here:


2: The Bar comes into play when Logged In Here and stays like that while your fully logged in. When you log out, it goes back to the picture above:

Which is why I left is as the 4 constants. x and y at login screen, x and y at Lobby/Ingame screen and left the bar how it is. Only problem is I had to use the wrapper you suggested for the uptext.


OR:

Offset the mouse like I did in the second suggestion. Only problem with this is that anyone using GetMousePos will have to add 50 to their y value.

That's it. Both of the suggestions tested fully and both work fully. But yes no need to rush anything at all. One wrong thing will throw everything off.

Master BAW

2012-07-12 15:16:33

From: 2496
Please fix scripts!!!!!!!!!!!!

I am losing exp!!!!!!!


+rep :f:

Wizzup?

2012-07-12 15:17:04

From: MasterCrimez
This seems to be a good solution? :redface: Please read
http://villavu.com/forum/showpost.php?p=1067747&postcount=314


This is slightly different from what I just suggested, it's all on the SRL side. The question is, where do you call the procedure and what is the effect on all the scripts? With what I just proposed, you wouldn't need to change SRL or any script.

Wizzup?

2012-07-12 15:19:13

From: Brandon
Offset the mouse like I did in the second suggestion. Only problem with this is that anyone using GetMousePos will have to add 50 to their y value.


No, no, they won't have to. Not with what I just suggested. Like I said, I could make it all internal to Simba, so a changable offset for Simba. But that's probably quite some work.

Like this:


// mouse is at 50, 50. GetMousePos returns 50, 50

SetClientOffset(0, 50);

// mouse is at 50, 50. GetMousePos returns 50, 100

Master BAW

2012-07-12 15:25:20

From: Wizzup?
This is slightly different from what I just suggested, it's all on the SRL side. The question is, where do you call the procedure and what is the effect on all the scripts? With what I just proposed, you wouldn't need to change SRL or any script.


with my solution the only thing you need to do is:

1. add this include with the procedure in it and the vars into the SRL include….
2. add DeterminePixelVariables; in the SetupSRL
3. add DeterminePixelVariables; at the begin AND end of LoginPlayer
4.(not needed: add DeterminePixelVariables every now and then into your loop, but if we do it at the end of LoginPlayer, that's also fine.)

so no changes to the scripts at all… only to SRL

Edit: except for the hardcoded coords in scripts ofcousre.. everyone should use the constants for their coords: such as MSX1+70 instead of 70

Edit2: wow Wizzup?!!! Check your p0stc0unt! 13337 OMGOMG :p

Nebula

2012-07-12 15:30:22

Lol or smart could be told to only display the bottom ~530 Pixels… There would be no LoginPlayer changes. There would be no offset constants. No one would have to waste their time changing around 90% of the current SRL functions. No scripters would have to update their scripts.:fiery:

Master BAW

2012-07-12 15:31:18

From: Nebula
Lol or smart could be told to only display the bottom ~530 Pixels… There would be no LoginPlayer changes. There would be no offset constants. No one would have to waste their time changing around 90% of the current SRL functions. No scripters would have to update their scripts.:fiery:

I don't know if that's possible but you should ask Benland, I think this is very S.M.A.R.T. :D

Wizzup?

2012-07-12 15:31:46

From: MasterCrimez
with my solution the only thing you need to do is:

1. add this include with the procedure in it and the vars into the SRL include….
2. add DeterminePixelVariables; in the SetupSRL
3. add DeterminePixelVariables; at the begin AND end of LoginPlayer
4.(not needed: add DeterminePixelVariables every now and then into your loop, but if we do it at the end of LoginPlayer, that's also fine.)

so no changes to the scripts at all… only to SRL

Edit: except for the hardcoded coords in scripts ofcousre.. everyone should use the constants for their coords: such as MSX1+70 instead of 70

Edit2: wow Wizzup?!!! Check your p0stc0unt! 13337 OMGOMG :p


What if I had something like this in my script:


if GetColor(400, 500) = clWhite then

That would definitely break. Wouldn't it?

Nebula

2012-07-12 15:34:52

From: Wizzup?
What if I had something like this in my script:


if GetColor(400, 500) = clWhite then

That would definitely break. Wouldn't it?


Not if only the bottom 530 pixels were displayed. The top bar would be cut off and everything could go back to how it used to be.

Master BAW

2012-07-12 15:35:02

From: Wizzup?
What if I had something like this in my script:


if GetColor(400, 500) = clWhite then

That would definitely break. Wouldn't it?


Yes, that's what I mean with hardcoded coords…

We could add the offset vars into the GetColor function… Or just do GetColor(400+OX,500+OY);

hunnyitsme3

2012-07-12 15:38:39

From: Nebula
Not if only the bottom 530 pixels were displayed. The top bar would be cut off and everything could go back to how it used to be.


this is a good idea. anyone testing this right now?

Danza99

2012-07-12 15:42:36

From: Wizzup?
By the way, I'm in no particular hurry to bring back the ``bot'' to the masses. I don't feel we should purposely delay a fix, but don't rush it. Think about the best and worthwhile solution. If we do it wrong now, we will suffer because of that later on.


^^ This.

Those that have the knowledge to work on a "fix" shouldn't feel pressured to pump out the first feasible solution, much better of looking for the long term solution.

Ignore any complaints from impatient users (and, ironically, those users being the ones that aren't contributing in any way), the rest of us appreciate it.

@People complaining - In the mean time whilst you can't use any scripts, how about checking out the scripting tutorial section to learn to script yourself? :)

Footy

2012-07-12 15:45:36

^ 100% agreed with danza, if you really want to bot, learn to script and make your own bot. If you know how to script, you can make your own bot, even when everything else is down. Stop leeching and join the community!
Good luck SRL Dev team!

SeaBass

2012-07-12 15:47:46

From: 2496
Please fix scripts!!!!!!!!!!!!

I am losing exp!!!!!!!


You're a trooper. Just hang in their mate!

bottybotterson

2012-07-12 15:48:56

From: Danza99
^^ This.

Those that have the knowledge to work on a "fix" shouldn't feel pressured to pump out the first feasible solution, much better of looking for the long term solution.

Ignore any complaints from impatient users (and, ironically, those users being the ones that aren't contributing in any way), the rest of us appreciate it.

@People complaining - In the mean time whilst you can't use any scripts, how about checking out the scripting tutorial section to learn to script yourself? :)


I'm actually doing this right now!:norris:

Keep up the great work though, always better to take your time and find a better long term fix.

Foefoe

2012-07-12 15:52:28

Whoever fixes this is AN ABSOLUTE LEGEND AND A BEAST CODER!

Since it seems more difficult than it is.

Master BAW

2012-07-12 15:57:21

From: Foefoe
Whoever fixes this is AN ABSOLUTE LEGEND AND A BEAST CODER!

Since it's more difficult than it seems.


fyp

Brandon

2012-07-12 16:05:29

Well.. I'm running scripts but meh lets just say it's totally not worth it.


See for yourself.. Safemode is done for. Especially if it isn't reflection/injection bots. This is literally a nuke. The JMods are actually refusing to fix it and they're saying use a "different mode" and that the bar is there to stay.

Now how do I get smart in OGL mode.. Tried literally everything but it crashes with some stack trace about Init(..). That image happens in the browser too. Browsers are even worse since:


Notice the bottom? You can't scroll any further. Smart is the only way to go from here unless you run in Resizeable mode..

On the good side.. On RS Forums they're saying the biggest bot got taken down because of this update lol.. That's us! There's a thread titled "Why are you guys mad?" referring to the guys complaining about the bar.
and it describes us saying that the biggest bot is nuked and it's a color bot..

Sin

2012-07-12 16:05:44

From: 2496
Please fix scripts!!!!!!!!!!!!

I am losing exp!!!!!!!


Aren't you that one kid on RiD who nobody likes?

Footy

2012-07-12 16:07:48

^Not done, Most DTM's wont work, but we can still use invmouse, once SRL is fixed. They havnt stopped us, but rather put a large Rock in the middle of our road. We cant take the easy way, but we can still do it the hard way. :D
E: @ Shay, I lol'd

Olly

2012-07-12 16:14:46

From: Brandon
Well.. I'm running scripts but meh lets just say it's totally not worth it.


See for yourself.. Safemode is done for. Especially if it isn't reflection/injection bots. This is literally a nuke. The JMods are actually refusing to fix it and they're saying use a "different mode" and that the bar is there to stay.

Now how do I get smart in OGL mode.. Tried literally everything but it crashes with some stack trace about Init(..). That image happens in the browser too. Browsers are even worse since:


Notice the bottom? You can't scroll any further. Smart is the only way to go from here unless you run in Resizeable mode..

On the good side.. On RS Forums they're saying the biggest bot got taken down because of this update lol.. That's us! There's a thread titled "Why are you guys mad?" referring to the guys complaining about the bar.
and it describes us saying that the biggest bot is nuked and it's a color bot..


About getting OGL in smart ask flight, I know he was trying not sure how far he got though.

Olly

2012-07-12 16:16:20

From: Foooty
^Not done, Most DTM's wont work, but we can still use invmouse, once SRL is fixed. They havnt stopped us, but rather put a large Rock in the middle of our road. We cant take the easy way, but we can still do it the hard way. :D
E: @ Shay, I lol'd


Look at Brandon pic lets say you wanted to find astral runes, even a quick multiple colour search/count though the invent boxes would fix that, search for the ess colour + astral white bit.

Olly

2012-07-12 16:17:54

From: Ollybest
Look at Brandon pic lets say you wanted to find astral runes, even a quick multiple colour search/count though the invent boxes would fix that, search for the ess colour + astral white bit.


EDIT: Ah shit double post, sorry guys.

ozam

2012-07-12 16:18:37

About the invisible items, it's supposed to be a bug, a jmod in the tech forums just posted this.

Hey guys,

Items appearing as invisible in your interface is not a problem with any of your settings or your game don't worry. It's a known bug which has come from the most recent game update.

We are fully aware and investigating the reasons for this happening. Hopefully a fix will be released soon.

Thanks,

Nebula

2012-07-12 16:20:04


procedure fix(InLobby: boolean);
var
ClientW, ClientH: Integer;
ClientBMP: LongInt;
begin
GetClientDimensions(ClientW, ClientH);
writeln(clientw);
writeln(clienth);
if InLobby then
SetTargetBitmap(BitmapFromClient(0, 22, 765, 553))
else
SetTargetBitmap(BitmapFromClient(0, 50, 765, 553));
end;

Possible /thread. Anyone who has the SRL version from a few days ago want to run this before LoginPlayer; and see if it works?

C0N0R

2012-07-12 16:20:59

From: Shay
Aren't you that one kid on RiD who nobody likes?


Yes he is … hes uber banned now though

Jason1234

2012-07-12 16:25:07

From: C0N0R
Yes he is … hes uber banned now though


lol

Trent!

2012-07-12 16:30:12

From: 2496
Please fix scripts!!!!!!!!!!!!

I am losing exp!!!!!!!


Oh Shh. You don't even deserve to use this script.


Note: This user has been Permanently Uberbanned from RiD for infraction buildup, and multiple users posted celebratory threads after I hit the Uberban button. He gained access to a beta, and was told not to leak it, and he did leak it, and loss that privilege, then continued to derp around getting infractions until he gained full 10 points. You'd have thought that after a day ban, and then a week ban, and then a month ban, he'd have learned LOL

Nebula

2012-07-12 16:39:55

What I posted will literally work perfectly.

The red box represents the new client size (Drawn with SMART_DrawBox and GetClientDimenstions). Now all I have to do is find a way to move it down 50 pixels (won't take long)

paskalakki

2012-07-12 16:43:54

From: Nebula
What I posted will literally work perfectly.


The red box represents the new client size (Drawn with SMART_DrawBox and GetClientDimenstions). Now all I have to do is find a way to move it down 50 pixels (won't take long)



Nice!

shstiger2009

2012-07-12 16:44:21

From: Nebula
What I posted will literally work perfectly.

The red box represents the new client size (Drawn with SMART_DrawBox and GetClientDimenstions). Now all I have to do is find a way to move it down 50 pixels (won't take long)


I got an Access violation error.

Line: ClientBMP := BitmapFromClient(0, 50, 765, 553);

Nebula

2012-07-12 16:47:51

From: shstiger2009
I got an Access violation error.

Line: ClientBMP := BitmapFromClient(0, 50, 765, 553);


Yeah hang on I'm still working on it. I got the old SRL version off github. Normally Access violation errors mean that you don't have the permissions to do something Run as Administrator.

hunnyitsme3

2012-07-12 16:50:48

From: Nebula
What I posted will literally work perfectly.

The red box represents the new client size (Drawn with SMART_DrawBox and GetClientDimenstions). Now all I have to do is find a way to move it down 50 pixels (won't take long)


great looking forward to it!

eska

2012-07-12 16:57:34

Guy, when proposing to do a offset on every get(color, position or whatever), you need to remember that SRL isn't only for runescape.

You can't just make those function return a position "off" by 50 pixels just because jagex added a little menu bar on top.

Personaly I use simba for Diablo III as well as some more games, and some people use it for flash games and to automate some task that aren't even game related.

You can't just quick fix SRL by wrecking everything else.

This "quick and dirty" solution might be good for you if you don't use simba for anything else than runescape, but the Devs simply can't do that since its walking 1 feet forward and 10 backward.

Getdropped

2012-07-12 17:03:31

From: Nebula
What I posted will literally work perfectly.

The red box represents the new client size (Drawn with SMART_DrawBox and GetClientDimenstions). Now all I have to do is find a way to move it down 50 pixels (won't take long)


The "New smart" or atleast the one i logged onto today was moved down so you could see all the screen both top and bottom. But when you move the client up you need to take into consideration that the client bar on the top loads with the client now so i feel this is going to be tricky. I propose that we dont actually work on moving the client rater work to update the coordinates of existing extensions and builds to fit with the new client.I'm not entirely sure but that is just my opinion to just keep it load the entire client and just change the variables. What we could do is have something that adds the 50 px to the Y values on the extensions to make it easier for now then after time update all of them to work with the bar on the top. Either way i'm sure it will turn out find ;) just kind of annoys me cause it put a nice stop to a few of my new scripts I have been working on and plan to release. ;)


Oh and as for the items being messed up I was having the same problem all you need to do to fix is just delete your cache and redownload <- or atleast it worked for me :)

edit: i accidently alched a whip cause it was invisible in my inventory (this really was sad because I just got hacked for all the stuff 2 days ago. :( )

Footy

2012-07-12 17:03:41

From: eska
Guy, when proposing to do a offset on every get(color, position or whatever), you need to remember that SRL isn't only for runescape.

You can't just make those function return a position "off" by 50 pixels just because jagex added a little menu bar on top.

Personaly I use simba for Diablo III as well as some more games, and some people use it for flash games and to automate some task that aren't even game related.

You can't just quick fix SMART by wrecking everything else.

This "quick and dirty" solution might be good for you if you don't use simba for anything else than SMART, but the Devs simply can't do that since its walking 1 feet forward and 10 backward.


@eska, use old version of smart, problem solved

BenLand100

2012-07-12 17:10:54

From: [J]ustin
Hope the dev team\helpers aren't forgetting about people who don't use SMART


From: eska
Guy, when proposing to do a offset on every get(color, position or whatever), you need to remember that SRL isn't only for runescape.

You can't just make those function return a position "off" by 50 pixels just because jagex added a little menu bar on top.

Personaly I use simba for Diablo III as well as some more games, and some people use it for flash games and to automate some task that aren't even game related.

You can't just quick fix SMART by wrecking everything else.

This "quick and dirty" solution might be good for you if you don't use simba for anything else than SMART, but the Devs simply can't do that since its walking 1 feet forward and 10 backward.


FYI This is not related to 'quick fixing' SMART — SMART already had different client sizes built in and ready to use, this is about fixing SRL

To the poster above me: All versions of SMART since… v6.0 had the same feature, there is no need to use old versions of SMART

eska

2012-07-12 17:13:29

From: Foooty
@eska, use old version of smart, problem solved


What do you want me to do with SMART? It can only run runescape. You didn't understand a thing about what I said.


@Benland100
I meant SRL, let me edit.

hunnyitsme3

2012-07-12 17:13:35

From: Foooty
@eska, use old version of smart, problem solved


^lol^

any update on the size fix for smart?

Footy

2012-07-12 17:21:27

Meant old version of SRL, my bad. I believe an update for smart's been pushed. Im running smart right now, Works fine.

Brandon

2012-07-12 17:26:18

From: eska
What do you want me to do with SMART? It can only run runescape. You didn't understand a thing about what I said.

@Benland100
I meant SRL, let me edit.


Not sure that you read the thread either :S
When I did my own updates I used a constant. In globals, u set it to zero and the functions work as they normally would so you can use it for things that aren't runescape related..

Iunno how anyone else implemented anything but I'm sticking to what I did. Just gotta wait it out and see what the actual solution becomes.

eska

2012-07-12 17:26:18

From: Foooty
Meant old version of SRL, my bad. I believe an update for smart's been pushed. Im running smart right now, Works fine.


So you are suggesting this:
Force user who are using simba for anything else than runescape, to use an old, outdated version of SRL, just because runescape had an update, and you didn't want to spend some time applying a good fix that works for runescape without wrecking everything else?

Man I hope you don't want to become a programmer, because with that way of thinking, it probably won't work out.

All I'm saying is, to non-devs, this problem might seem very easy to fix, but it's in fact a bit more complicated that it seems because it affect much more than just what we can see.

Imagine

2012-07-12 17:31:14


That's my error

Wizzup?

2012-07-12 17:35:17

From: Nebula
The red box represents the new client size (Drawn with SMART_DrawBox and GetClientDimenstions). Now all I have to do is find a way to move it down 50 pixels (won't take long)


Your way won't work. What you're doing it literally making a copy of the client as it is. You'll never see the screen redraw. You can't bot on a single picture… ;)

Footy

2012-07-12 17:39:46

From: eska
So you are suggesting this:
Force user who are using simba for anything else than runescape, to use an old, outdated version of SRL, just because runescape had an update, and you didn't want to spend some time applying a good fix that works for runescape without wrecking everything else?

Man I hope you don't want to become a programmer, because with that way of thinking, it probably won't work out.

All I'm saying is, to non-devs, this problem might seem very easy to fix, but it's in fact a bit more complicated that it seems because it affect much more than just what we can see.


Just because its old doesn't necessarily mean its outdated. Anyways, I didn't understand how this was being done, I think Brandon's cleared it up.

Nebula

2012-07-12 17:43:30

From: Wizzup?
Your way won't work. What you're doing it literally making a copy of the client as it is. You'll never see the screen redraw. You can't bot on a single picture… ;)


What I'm trying to do is change the target client. Is the client change not permanent? This is what I have now:

procedure fix(InLobby: boolean);
var
ClientW, ClientH: Integer;
begin
if InLobby then
SetTargetBitmap(BitmapFromClient(0, 22, 765, 553))
else
SetTargetBitmap(BitmapFromClient(0, 50, 765, 553));
GetClientDimensions(ClientW, ClientH);
SMART_DrawBox(PointToBox(Point(0, 0), Point(ClientW, ClientH)));
TerminateScript;
end;

Brandon

2012-07-12 17:46:17

From: Nebula
What I'm trying to do is change the target client. Is the client change not permanent? This is what I have now..


You can't just shift the target to another screen/bitmap. Like wiz said, you can't bot on a bitmap. What you do is shift the pointer that simba reads from in the target. Benland had suggested this a couple pages back already. It's already been done as well.

shanghai88

2012-07-12 17:59:47

From: Nebula
I don't know what any of that means, are you saying to just chop off the new area created by the update, and just make it how it used to be? like this:
Don't see why that wouldn't work.


^
I strongly recommend this instead of fixed global values. Please make it auto detect and adapt depends on certain variables, you know when optimus rolls out Jagex/Jacmob is going to randomize the Y value of the bar on each login.

OR Jerry rig it by add a Y value slider on smart for manual adjustment :p

Foefoe

2012-07-12 18:10:09

I'm not sure how SIMBA works, but maybe changing all the detect X values down a bit more? Hard to explain. If that wouldn't work, I guess I'd leave it to the experts.

Good luck, cannot wait to use the amazing SIMBA and thank the people who fix it! I will be patient as it's worth waiting.

jayzarks95

2012-07-12 18:17:47

hey guys i've been reading around on this thread and ive noticed the term "optimus" I was wondering what this meant?
also thanks for working hard and on your own time to get this issue fixed :)

mukakall

2012-07-12 18:18:59

Optimus is what Jagex is calling the new bot nuke.

jayzarks95

2012-07-12 18:27:22

lol well there are a lot of bots that are obviously bots and if jagex hasnt caught on theyre blind. 25+ people wearing all of the same armour in the same place and none of them talk, seems legit right? lol
optimus wont touch me cuz im a smart botter!

dx osiris1

2012-07-12 18:28:16

we pay $8 for membership and they try so hard to eliminate botting. damn enhlish people and there crap "oh we can't let people do this it's not polite" and i can say that becasue my grandmother is exactly like that and english.we pay for what we do on the game and why should they control it? sure they created the WHOLE thing, but for christs sake it like obama trying to make everyone the same social class and control EVERYONE. oh and a GREAT question what actually happenes if you get *caught* botting? ive heard a lot of different things and someine please give me the real reason.

bricks

2012-07-12 18:41:56

From: dx osiris1
we pay $8 for membership and they try so hard to eliminate botting. damn enhlish people and there crap "oh we can't let people do this it's not polite" and i can say that becasue my grandmother is exactly like that and english.we pay for what we do on the game and why should they control it? sure they created the WHOLE thing, but for christs sake it like obama trying to make everyone the same social class and control EVERYONE. oh and a GREAT question what actually happenes if you get *caught* botting? ive heard a lot of different things and someine please give me the real reason.


It is fun to play the game once you have money/skills, on the contrary getting the exp and money consumes ones life and to not use a bot is insane…I enjoy having a life and getting to play the game, the way it was intended, with skills and money. I also caught got for botting on another account but I was using a bot not based off color. They perm banned me and that was the end of it.

klamse

2012-07-12 18:46:39

If this minimal update is flustering the entire community, just imagine how horrendous it will be when the bot nuke comes out… :o

bomzene

2012-07-12 18:48:57

From: klamse
If this minimal update is flustering the entire community, just imagine how horrendous it will be when the bot nuke comes out… :o


True that! Why can't people just be patient? Or perhaps they could learn some Java and Pascal and maybe attempt to make a fix themselves… I am really enjoying learning java at the moment, I hope that more people will have a go at it :D

Good luck devs! Keep up the amazing work :)

Ironduke

2012-07-12 18:50:23

In due time gentleman, just do some quests while you wait.

Kyle Undefined

2012-07-12 19:01:33

Wizzup?s idea about setting the target area as an internal change for Simba is probably the cleanest and best ways to do this. It would only require a few files to be changed, mainly SRL.simba and login.simba.

Unless I'm misunderstanding what Wizzup? is talking about :p

Luke L

2012-07-12 19:13:24

Just wanted to say thanks to everyone who is working on a fix. As I am just learning how to script, there isn't much I can do.

To support those who do know what they are doing, and are doing so, I did the only thing I could at this point - I donated to SRL :).

Thanks for all the hard work, best of luck!

shstiger2009

2012-07-12 19:14:47

From: Kyle Undefined
Wizzup?s idea about setting the target area as an internal change for Simba is probably the cleanest and best ways to do this. It would only require a few files to be changed, mainly SRL.simba and login.simba.

Unless I'm misunderstanding what Wizzup? is talking about :p


Nah, you're right. Hopefully that will fix our problems! I think it will and I think we all hope he can write the function tomorrow. :D

dracontamer

2012-07-12 19:16:59

hey, guys, just wondering, if jagex is called a new bot nuke optimus, couldn't that be like, copyright infringement on the transgenders… i mean. transformers copyright?

Silent

2012-07-12 19:39:31

From: Kyle Undefined
Wizzup?s idea about setting the target area as an internal change for Simba is probably the cleanest and best ways to do this. It would only require a few files to be changed, mainly SRL.simba and login.simba.

Unless I'm misunderstanding what Wizzup? is talking about :p


I think the main thing that will be changed is like you said login.simba. What exactly hangs out in SRL.simba? I don't have it right now (phone)

putonajonny

2012-07-12 19:43:39

From: dracontamer
hey, guys, just wondering, if jagex is called a new bot nuke optimus, couldn't that be like, copyright infringement on the transgenders… i mean. transformers copyright?


Optimus is the name of a character, that's like people saying you can't use the word James because of James Bond, besides, google optimus, you have to get to the 6th result for it to be about transformers

putonajonny

2012-07-12 19:45:45

From: Silent SPY
I think the main thing that will be changed is like you said login.simba. What exactly hangs out in SRL.simba? I don't have it right now (phone)


SRL.simba contains SetupSRL and it includes all of the other includes if that makes sense

jfishy

2012-07-12 20:15:32

From: putonajonny
Optimus is the name of a character, that's like people saying you can't use the word James because of James Bond, besides, google optimus, you have to get to the 6th result for it to be about transformers

Lol it was exactly the sixth result for me.

Footy

2012-07-12 20:25:28

3/d for me…. Anyways, is fix looking to be finished tomorrow? Not rushing the devs at all, but until this is fixed, I cant really do any scripting! bored to death :/

dx osiris1

2012-07-12 21:08:10

From: bricks
It is fun to play the game once you have money/skills, on the contrary getting the exp and money consumes ones life and to not use a bot is insane…I enjoy having a life and getting to play the game, the way it was intended, with skills and money. I also caught got for botting on another account but I was using a bot not based off color. They perm banned me and that was the end of it.


i agree! i went to greenfield village today in dearborne michigan. i like to get out and not spend all day playing but when i want to play i want something to do not get skills up for quests becasue its oring or making money is crazy these days i hate how the grand exchange IS the stock market. made the game better but for the worse.

Trent!

2012-07-12 21:11:11

From: putonajonny
Optimus is the name of a character, that's like people saying you can't use the word James because of James Bond, besides, google optimus, you have to get to the 6th result for it to be about transformers


Well, Jagex owns rights to the Transformer's Copyright anyway, since they are doing another game called Transformers Universe, so I don't think it matters much either way lol

dvander222

2012-07-12 21:53:33

Hey guys, just curious as to how to download smart v7.2
i know how to download the binaries, but idk where to put them, and when i download smart manager its only verson .69?
also im running simba 990

Justin

2012-07-12 22:09:22

Nice work overnight devs. Keep it up :)

fumaor

2012-07-12 22:28:14

works now ???????

sacapuntas

2012-07-12 22:38:56

From: fumaor
works now ???????


I don't think so mate

John

2012-07-12 22:41:37

Any of this help? http://www.runescape.com/downloads.ws
Client source there.
HAHAHA Browser clutter, you CANT escape it.

BobboHobbo

2012-07-12 22:47:02

From: John
Any of this help? http://www.runescape.com/downloads.ws
Client source there.
HAHAHA Browser clutter, you CANT escape it.


This is interesting.

Justin

2012-07-12 22:51:49

From: BobboHobbo
This is interesting.


I think what they mean is that the RuneScape client loader is open source, not the actual Client itself

NKN

2012-07-12 22:59:43

It's the loader source, not the game, they wouldn't release the game source, lol.

imalegitbotter

2012-07-12 23:52:44

is this fixed now? also - will the glitched items be fixed?

YoHoJo

2012-07-12 23:54:07

From: imalegitbotter
is this fixed now? also - will the glitched items be fixed?


No.
Ask Jagex :p.

If you are not on safe mode apparently everything looks fine.

imalegitbotter

2012-07-13 00:12:25

how come when i pause my simba script, then hit play it wants to reload the whole bot screen. well done jagex. you fucked up bigtime.

NKN

2012-07-13 00:27:38

What?

whaevr

2012-07-13 00:46:38

I thought that switching over to something over than safe mode than switching back fixed the glitched items??

Im running in safe mode right now and it seems fine..no glitched items yet. Also I think I remember reading somewhere on the rs forums that deleting your rs cache fixes the safe mode glitch?

Unless the glitch always occurs when trying to load the client in safe mode?

Shino Iro

2012-07-13 00:55:32

I can't even get any of my scripts to start, it just sits at the log-in screen. So I'm just waiting for this whole thing to pass over since I can't code, not gonna bother complaining about it.

NKN

2012-07-13 00:57:28

From: Shino Iro
I can't even get any of my scripts to start, it just sits at the log-in screen. So I'm just waiting for this whole thing to pass over since I can't code, not gonna bother complaining about it.



You JUST complained.

Wildo

2012-07-13 00:59:13

Don't Slam me if this is crazy but what if we just ran the game in software vs Safe Mode… would fix the broken items. Also I found it you go to resizeable then go back to fixed it will fix the bar thing in browser mode, I have no idea about SMART mode though.

Shino Iro

2012-07-13 01:00:57

That's not complaining, that's making an observation. Complaining would sound more like "UGH THE SCRIPT SUCKS IT WON'T EVEN WORK ON THE LOG IN SCREEN, I HATE THIS BLAH BLAH BLAH"

See the difference?

NKN

2012-07-13 01:02:53

From: Shino Iro
That's not complaining, that's making an observation. Complaining would sound more like "UGH THE SCRIPT SUCKS IT WON'T EVEN WORK ON THE LOG IN SCREEN, I HATE THIS BLAH BLAH BLAH"

See the difference?


That's exactly what you said…
We all know it's not working, your post was utterly useless.

Shino Iro

2012-07-13 01:04:53

Actually, all I said was that the scripts won't even log in for me, seeing how the SMART isn't working from the RS Update. And you calling me out with no basis is just as useless, so one of us should be the adult here and move on. I guess I'll be that one.

Justin

2012-07-13 01:10:38

No clue if this helps but I am using the RS Client, with this as my testing for UpText (Credits to Wizzup for base)

writeln(rs_GetUpTextAtEx(1, 55, True));

Results:

Compiled successfully in 296 ms.
SRL Compiled in 0 msec
Use Bank chest / 3 more options- _ -. . - .. --
Successfully executed.
New window: 208662
Compiled successfully in 296 ms.
SRL Compiled in 0 msec
Pick up Freezy / 3 more options-.- _ -. . - .. --
Successfully executed.
Compiled successfully in 297 ms.
SRL Compiled in 0 msec
Pick up Freezy / 3 more options-.- _ -. . - .. --
Successfully executed.
Compiled successfully in 297 ms.
SRL Compiled in 15 msec
Pick up Freezy / 3 more options-.- _ -. . - .. --
Successfully executed.
Compiled successfully in 296 ms.
SRL Compiled in 16 msec
Pick up Freezy / 3 more options-.- _ -. . - .. --
Successfully executed.

Varrock

2012-07-13 01:12:52

5th for me if you don't count the annoying ad Ar the top. Anyways thanks to everyone working hard for a fix but I'm still learing and have only made an iron miner which is almost done but need updates to pccur



Thanj u everyone for ur hard work
Sorri about spelling on my phone :)

Wikkedninja

2012-07-13 01:12:58

everyone just needs to wait patiently for the fix. It will happen eventually probably sooner then later. I was planing on having 96 herb by today but I'm just sitting here waiting patiently lurking on the forums so please do the same and maybe call your friends over to get drunk (if your old enough) that's what I'm doing. It's just a game go out and have a life.

L00PH0LE

2012-07-13 01:25:25

From: Shino Iro
That's not complaining, that's making an observation. Complaining would sound more like "UGH THE SCRIPT SUCKS IT WON'T EVEN WORK ON THE LOG IN SCREEN, I HATE THIS BLAH BLAH BLAH"

See the difference?


The moment you said "I" it turned into a complaint. An observational sentence would start without that noun.

Can you dig it? :spot:

TheWord

2012-07-13 01:28:46

Do scripts need to be fixed or is the client still being updated?

Kyle Undefined

2012-07-13 01:42:20

READ THE FIRST POST!

Jesus, it says we are working on it. You WILL be notified when it's fixed. We have lives outside of this forum, have some patience. It's honestly pissing me off that none of you who are asking about it being fixed even read the first post, or anything in between.

Just sit back and wait, that's all you can do.

ziellos

2012-07-13 01:56:37

Besides the fact that there are around 4 different hotfixes in this thread, we still can't bot with it fixed so people need to be waiting on RS to fix safe mode first. Deleting all jagex caches and switching to software doesn't seem to fix it either, you have to open the bank and bam instant glitched again (after withdrawing items etc).

Unless someone got it working.. I've tried deleting caches, then using software, safe, and directx with switching back to the other two and still always glitches.

The only fix I haven't tried is clearing, auto configuring, then switching to software.

Shino Iro

2012-07-13 02:02:06

From: L00PH0LE
The moment you said "I" it turned into a complaint. An observational sentence would start without that noun.

Can you dig it? :spot:



I would have to say I, because it's not like Simba can start itself. I have to actually push start on it.

Can you dig it?

Tlachtli

2012-07-13 02:09:41

From: Shino Iro
I would have to say I, because it's not like Simba can start itself. I have to actually push start on it.

Can you dig it?


With SMARTManager, it can start itself. Also, it is entirely possible to talk about starting Simba without the first person.

Ex: It is necessary for a human to push the green triangle for a Simba script to start. Scripts will not run themselves without input or the use of a utility like SmartManager. After a major update to RS such as this most recent one, parts of Simba may break, which results in functions using coordinates which are no longer accurate. The staff are working as hard as they deem necessary on fixing this problem, and a fix will become available once it is completed. Neither the first nor second person was used in this paragraph.

Shino Iro

2012-07-13 02:27:28

What would be the point of that though? It would only make something simple more complicated to read.

NKN

2012-07-13 02:33:35

From: Shino Iro
What would be the point of that though? It would only make something simple more complicated to read.



That post gave me cancer.

Stop talking.

naturevalley

2012-07-13 02:41:44

Lol NKN I thought the same thing.. There needs to be a sticky thread on how not to be cancer to these forums. Everyone stop asking when the fix is, obviously if a fix happens it will be posted. Just be patient.

fire_burn_00

2012-07-13 02:44:15

Must I say that people take free services for granted a lot… For example RUNESCAPE ITSELF… Be thankful you have mods taking time out of their lives to help you enjoy another free service that you've been bashing. Stop the hate and appreciate… Thank you mods.

Shino Iro

2012-07-13 03:11:45

From: NKN
That post gave me cancer.

Stop talking.


Man you surely know how to escalate things. Here I am just talking and you're over there getting angry.

xColoris

2012-07-13 04:16:46

From: Shino Iro
Here I am just talking and you're over there getting angry.


You're actually typing.

2496

2012-07-13 04:34:17

From: Trent!
Oh Shh. You don't even deserve to use this script.


Note: This user has been Permanently Uberbanned from RiD for infraction buildup, and multiple users posted celebratory threads after I hit the Uberban button. He gained access to a beta, and was told not to leak it, and he did leak it, and loss that privilege, then continued to derp around getting infractions until he gained full 10 points. You'd have thought that after a day ban, and then a week ban, and then a month ban, he'd have learned LOL


Ye, got banned for selling membership, just because I could't provide *proof* that I own it.

And most of those other points came from flaming, cos you were uber fgts, and knew nothing about rs…

And L0L at you non maxers fgts from rid, these scripts are MUCH more stable, none of you scrips except ridi ( which 1/5 of times ends up in soul wars grave for no reason and can't find way back to bank ) lasts for straight 6 hours, I botted almost 3k hours with rid, and I cant tell, those 3k hours were hell. It took like a 10 hours for support ticket to get accepted and like 1-2 weeks for it to get fixed lol! Firemaking magic logs took over 2 months to get fixed, while in here most of active scripts fix bugs within a day.

I don't have time to learn coding in here, because I am very busy working irl right now, preparing for olympics, but I will be donating some $ if I find that script is usefull for me, and I make good use of it.

Justin

2012-07-13 04:40:28

Can we please try and keep this thread related to the update and not turn it into a RiD thread?

2496

2012-07-13 04:43:41

From: [J]ustin
Can we please try and keep this thread related to the update and not turn it into a RiD thread?


Those non maxed fgts started…?

L00PH0LE

2012-07-13 04:46:38

From: Shino Iro
I would have to say I, because it's not like Simba can start itself. I have to actually push start on it.

Can you dig it?


Riggghhhtttt…… You could have just said "the scripts wont start after hitting run". You see, no use of the word "I".

Just sayin'. :surprised:

gpianist

2012-07-13 04:53:51

Guyz maybe the only visible parts (assuming that they do not change the invisible parts) in safe mode seem to be the ones which do not change color. So for Items that are only partially visible, wouldn't this be the best time to pick out good colours for bots?

John

2012-07-13 05:26:58

From: NKN
It's the loader source, not the game, they wouldn't release the game source, lol.


Uh well it was worth a try :)

speedster

2012-07-13 05:59:23

Now we wait and see which solution will be best , 'hacking' or fixing ?:D

Total

2012-07-13 06:00:00

From: 2496
Those non maxed fgts started…?


I haven't even looked at the argument, but I laughed at this comment. Maxing is so easy nowadays its not even a bragging right lol.

Sorry for going off topic lol.

2496

2012-07-13 06:03:23

From: TotalKillz
I haven't even looked at the argument, but I laughed at this comment. Maxing is so easy nowadays its not even a bragging right lol.

Sorry for going off topic lol.


Still, I like to call them that way :p

Btw, I bet you arent maxed either.

Master BAW

2012-07-13 06:24:48

[php]function GetColor(x, y: Integer): Integer;
begin
result:= SmartGetColor(x, y);
end; [/php]

I get an Acces violation error at the result := SmartGetColor(x,y); I AM running in Administrator mode. How can I fix this? :( I'm trying to make a fix but I can't go on when I cannot test

Edit: almost solved, nvm, was something within the script

Leonardo Da Vinci

2012-07-13 07:14:08

Any updates?

grats

2012-07-13 07:25:33

From: Law and Justice
Any updates?


Well from the looks of it, this update has shown some developers stuff they dislike, so it seems they're changing a bit of core stuff – adding more features (simba and smart) and then are going to push the new updates for those, along with the SRL that fixes it, instead of just doing SRL changes that are "ugly"

TheWord

2012-07-13 07:27:44

From: grats
well from the looks of it, this update has shown some developers stuff they dislike, so it seems they're changing a bit of core stuff – adding more features (simba and smart) and then are going to push the new updates for those, along with the srl that fixes it, instead of just doing srl changes that are "ugly"


eta?

Leonardo Da Vinci

2012-07-13 07:30:33

From: grats
Well from the looks of it, this update has shown some developers stuff they dislike, so it seems they're changing a bit of core stuff – adding more features (simba and smart) and then are going to push the new updates for those, along with the SRL that fixes it, instead of just doing SRL changes that are "ugly"


Oh, that's brilliant. It's awesome to know the gears are turning again!
Gotta love the devs!

… I can't believe how much I depend on simba.

kazzos

2012-07-13 07:32:20

From: Law and Justice

… I can't believe how much I depend on simba.


Haha me too. The only thing I have done on RS is just flip for some $$$ and play gambling games.

Master BAW

2012-07-13 07:42:06

how come that there are 110k people playing? where are the other bots? yesterday I saw 150k online too… so there must be a lot of bots right? Is villavu only a small community? I of only 1k-10k bots? what are the other bots currently working?

p.s. I stop trying to fix it, I tried to do it within SRL but that's "Ugly". :) I could have the script to login but not any further because some problems occured. (strange errors)… hopefully they will come with a solution soon

Leonardo Da Vinci

2012-07-13 07:42:11

From: kazzos
Haha me too. The only thing I have done on RS is just flip for some $$$ and play gambling games.


Oh god, I know.
I mean, I love legit playing RuneScape… But god damn, botting is fun too.

I also just spent $15 on wheel spins. [Sarcasm]Totally worth it though, I mean I got some Black longswords, 10k, a rune platebody and about About 10k XP all up![/Sarcasm]

grats

2012-07-13 07:54:49

From: TheWord
eta?


No idea, but wizzup seems like he's pretty much good to go with simba, therefore hopefully a day? I mean with the weekend coming up I assume it would be done definitely by sunday.. if anything

2496

2012-07-13 08:15:04

From: TotalKillz
I've been maxed for 3 years actually. My maxing anniversary is July 20th, maybe I should do something special.

well you are with simba. I was talking about shitty rid users lol.

speedster

2012-07-13 09:24:18

No need to bash users from other communities, you yourself are making a fool of yourself and adds negatives on how we see you here.

This community unlike others won't tolerate trolls.

2496

2012-07-13 09:27:42

From: speedster
No need to bash users from other communities, you yourself are making a fool of yourself and adds negatives on how we see you here.

This community unlike others won't tolerate trolls.


go back to rid and bot with their shitty scripts, mod wanna be.

Leonardo Da Vinci

2012-07-13 09:32:01

From: 2496
go back to rid and bot with their shitty scripts, mod wanna be.


He's been here longer than you. I suggest you go back.

YoHoJo

2012-07-13 09:34:23

Stop the arguing all of you.

fdn5

2012-07-13 09:34:36

Clear the Jagex Cache

To delete your Jagex cache just click the Start button –> Search and copy these directories into the search bar:

C:\.jagex_cache_32

%WINDIR%\.jagex_cache_32 %USERPROFILE%\jagexcache\runescape\LIVE %USERPROFILE%\.jagex_cache_32

Once you've found these folders, please delete them.

Note: If done correctly you should be asked to re-run auto setup once you reload the game.
If you are unsure on how to do this, check out our youtube video for a step by step walkthrough!

jfishy

2012-07-13 09:37:35

From: fdn5
Clear the Jagex Cache

To delete your Jagex cache just click the Start button –> Search and copy these directories into the search bar:

C:\.jagex_cache_32

%WINDIR%\.jagex_cache_32 %USERPROFILE%\jagexcache\runescape\LIVE %USERPROFILE%\.jagex_cache_32

Once you've found these folders, please delete them.

Note: If done correctly you should be asked to re-run auto setup once you reload the game.
If you are unsure on how to do this, check out our youtube video for a step by step walkthrough!

This has already been posted -.-
The developers need to fix SMART itself…

Footy

2012-07-13 09:39:20

Smarts fixed, or atleast theres a temp. fix, I'm using it right now. They need to fix the SRL include,

krasniy

2012-07-13 09:41:06

From: 2496
well you are with simba. I was talking about shitty rid users lol.


I see you joined Simba in June 2012….So Welcome Aboard!!!

As for the other person mentioning that bashing other bot communities is not really encouraged here on Villavu, he/she is correct. Most Everyone here tries to be nice and friendly….and your comments seem directed at the people who use that particular bot (not nice to be honest) and not at the pros/cons of the particular bot client (which is perfectly fine to post)….

If someone wants to use "SomeBotSomeWhereElse" then more power to them…. over time many people come to recognize that Simba is the better option for most (there are always exceptions to anything I suppose)……

Anyways just sharing my thoughts…

BobboHobbo

2012-07-13 10:01:40

.. Instead of all this bashing, go do something useful! Ive never seen half you people post, only now when botting is currently down leechers appear and have a rage at each other lol.

ggsus

2012-07-13 10:10:10

From: YoHoJo
Stop the arguing all of you.


Thank-you..

lukeCB

2012-07-13 10:27:35

wow, you can just tell how much some people rely on botting … just wait until its fixed …

Im New Sry

2012-07-13 10:37:59

Wow, since the bot came down, all of the "inactive" people (leechers) came active suddenly. Looks kinda funny to see them all active now.
Anyway, I'm not worried about Simba, tho I hope it will get fixed in the near future. :P

marcelinohernandez

2012-07-13 10:42:28

Finally, I have found a fix.

Download the file above, go to C:/Simba/ and replace SIMBA.exe with the new one.

Then when you run, resize the screen. Currently only works on 32 bit PCs. If you run 64bit, run it on Virtual Box.

Footy

2012-07-13 10:45:21

^ Dont Download

kambyz

2012-07-13 10:45:51

From: marcelinohernandez
Finally, I have found a fix.

zzzzzzzzzz

Download the file above, go to C:/Simba/ and replace SIMBA.exe with the new one.

Then when you run, resize the screen. Currently only works on 32 bit PCs. If you run 64bit, run it on Virtual Box.


Seems fishy. Obviously virus

Foefoe

2012-07-13 10:52:39

shit i downloaded it, i will delete it now and change my passwords.

i better download an antivirus now then…

NKN

2012-07-13 10:54:42

Dat Virus, silly boy.
https://www.virustotal.com/file/20fad067e50cee76533f91636d3521db3bd3e03aab47ff8816e8a9dae79fcfc7/analysis/1342191047/

Austin

2012-07-13 11:14:15

From: marcelinohernandez
Finally, I have found a fix.


Download the file above, go to C:/Simba/ and replace SIMBA.exe with the new one.

Then when you run, resize the screen. Currently only works on 32 bit PCs. If you run 64bit, run it on Virtual Box.

Good job! You've found a way to surely get yourself banned :)

Master BAW

2012-07-13 12:00:41

From: Foooty
Smarts fixed, or atleast theres a temp. fix, I'm using it right now. They need to fix the SRL include,


Can you put it in this forum for us to see and try please?

NKN

2012-07-13 12:02:03

From: MasterCrimez
Can you put it in this forum for us to try please?


-facedesk-
Disable Leecher Powers, and use the search bar please.

krasniy

2012-07-13 12:03:35

From: BobboHobbo
.. Instead of all this bashing, go do something useful! Ive never seen half you people post, only now when botting is currently down leechers appear and have a rage at each other lol.


Agreed…and along with some of them joining in July 2012 I suspect they are trolls on vacation from underneath some bridge somewhere….

Sometimes I wish new people would be on forum probation where they couldnt post for some many days or weeks… shame to punish the good ones, but it would end some of this we must endure all the time

Footy

2012-07-13 12:24:48

From: MasterCrimez
Can you put it in this forum for us to see and try please?


I'm using one of the hot-fixes listed earlier in this thread, Ill try to find it. Scripts run fine if you add 50 to all hard co-ordinates, and replace SRL functions with hard co-ordinates(Co-ords instead of (gametab)) Heres a pic of what it looks like, Ill look for the fix now.

E: I believe I edited C:\Simba\Includes\SRL\SRL.SIMBA
ctrl + f search for 503, it should return one result. This is the y height for SMART i guess. change that to 553, and your smart should look like mine.

r3n3w3d

2012-07-13 12:35:22

If people are that worked up about not being able to bot, it takes a whole 5 minutes using a search engine to find different bots to use that work a little bit worse than simba. But that is if you aren't patient, personally not being able to a bot for a few days won't kill you.

euphemism

2012-07-13 12:43:51

From: MasterCrimez
Can you put it in this forum for us to see and try please?


From: Foooty
I'm using one of the hot-fixes listed earlier in this thread, Ill try to find it. Scripts run fine if you add 50 to all hard co-ordinates, and replace SRL functions with hard co-ordinates(Co-ords instead of (gametab)) Heres a pic of what it looks like, Ill look for the fix now.

-snip

E: I believe I edited C:\Simba\Includes\SRL\SRL.SIMBA
ctrl + f search for 503, it should return one result. This is the y height for SMART i guess. change that to 553, and your smart should look like mine.


Guys, I pushed the SMART dimensions fix two days ago, if you update SRL the game will no longer be cut off. Fixing all of the hard-coded coordinate uses within SRL still needs to be done, but SMART is the proper size now.

Footy

2012-07-13 12:47:29

ahh, alright, I thought I fixed it myself, :D

L00PH0LE

2012-07-13 12:50:09

From: Law and Justice
Oh god, I know.
I mean, I love legit playing RuneScape… But god damn, botting is fun too.

I also just spent $15 on wheel spins. [Sarcasm]Totally worth it though, I mean I got some Black longswords, 10k, a rune platebody and about About 10k XP all up![/Sarcasm]


I wonder if anyone has even won the 200m pot from the squeal. You were better off just buying a couple dozen mill for that much.

hackerb

2012-07-13 12:55:16

If there is anything I can do to help please tell me, I have knowledge of java and have looked at the core files of SRL and understand them as well

I really want to help to fix this thing and work my way up in this community :)

Footy

2012-07-13 13:00:06

At the moment, they are just fixing SRL, SMART is already fixed. An awesome way to work your way into the community is to start writing scripts, and get feedback on how you can improve.

hackerb

2012-07-13 13:05:10

I just started writing a fletcher that works with the navbar =) so hopefully I will be able to add it to the forum later this day

Footy

2012-07-13 13:10:17

haha, I wrote an alcher for navbar aswell. Just be warned, it wont work after the update. PM me the script when you're done, and I'd be glad to test it later on today!

hackerb

2012-07-13 13:18:32

I know, but I am not going to do loads of failsafes, just a basic script that will work for now so that all the people that are complaining can start botting again

Then maybe they will stop complaining and give the moderators the time to find a proper fix

2496

2012-07-13 13:30:57

From: Law and Justice
He's been here longer than you. I suggest you go back.


You must be retarted… How can I come back if they have banned me? (for selling membership)


Also they leaked my maxed account username which is not nice…

Tlachtli

2012-07-13 13:33:39

From: 2496
You must be retarted…


Not how you win friends, mate.

bottybotterson

2012-07-13 13:51:05

Just wanted to say keep up the awesome work! I have faith that all will be fixed and working just as well, if not better, than before! I'm attempting to learn scripting and how it all works and it is not easy. Give these guys a break, and the time to get it done correctly!

hunnyitsme3

2012-07-13 13:51:15

From: Foooty
I'm using one of the hot-fixes listed earlier in this thread, Ill try to find it. Scripts run fine if you add 50 to all hard co-ordinates, and replace SRL functions with hard co-ordinates(Co-ords instead of (gametab)) Heres a pic of what it looks like, Ill look for the fix now.

E: I believe I edited C:\Simba\Includes\SRL\SRL.SIMBA
ctrl + f search for 503, it should return one result. This is the y height for SMART i guess. change that to 553, and your smart should look like mine.


I didnt find 503, but I did find 553… should we change it to 603??

2496

2012-07-13 13:54:25

From: Tlachtli
Not how you win friends, mate.


totally doesnt want to make friends on botting website lmfao <<<

NKN

2012-07-13 13:59:44

From: 2496
totally doesnt want to make friends on botting website lmfao <<<



We're a community first, botting website second.
You should be here to make friends.

2496

2012-07-13 14:26:25

From: NKN
We're a community first, botting website second.
You should be here to make friends.


I prefer to make friends that I can see irl and communicate with looool, don't want to be friend of rejects that can't make friends irl…

Sin

2012-07-13 14:30:44

From: Shay
Aren't you that one kid on RiD who nobody likes?


'Nuff said.

Abu

2012-07-13 14:31:51

From: 2496
don't want to be friend of rejects that can't make friends irl…


You're on the same forums as us mate.

That means you too are a reject that can't make friends irl :)

Join the club.

Sin

2012-07-13 14:33:21

From: abu_jwka
You're on the same forums as us mate.

That means you too are a reject that can't make friends irl :)


Made me laugh, + rep :D

2496

2012-07-13 14:34:48

From: abu_jwka
You're on the same forums as us mate.

That means you too are a reject that can't make friends irl :)


FACEPALM.

I am not looking to make friends. I think you are missing the point lol.



YES, 2496 IS BOSS, I REP HIM IS WELL ^^^ NUF SAID.

Abu

2012-07-13 14:43:42

From: 2496
FACEPALM.

I am not looking to make friends. I think you are missing the point lol.


Yes, that is your main point.

However your supporting point is that people in botting communities, in this case ours, are rejects that can't make friends irl.

You became a part of this community when you registered, that makes you one of us, thus a reject with no real life friends.
:)

2496

2012-07-13 14:45:51

From: abu_jwka
Yes, that is your main point.

However your supporting point is that people in botting communities, in this case ours, are rejects that can't make friends irl.

You became a part of this community when you registered, that makes you one of us, thus a reject with no real life friends.
:)


LOOOOOOOL, I regitered so I can bot and go outside with real life friends, not to make virtual loser friends… nuff said

Abu

2012-07-13 14:47:03

From: 2496
LOOOOOOOL, I regitered so I can bot and go outside with real life friends, not to make virtual loser friends… nuff said


The reason you registered is irrelevant, you're still part of the community.

sickle

2012-07-13 14:48:45

Can we stop making worthless arguments with worthless people plz…

Abu

2012-07-13 14:50:38

From: sickle
Can we stop making worthless arguments with worthless people plz…


Yes massterrr. :hypocrite:

Adamcoled

2012-07-13 14:52:22

Any previous version we can go back to?

lucifer0412

2012-07-13 14:52:31

From: 2496
LOOOOOOOL, I regitered so I can bot and go outside with real life friends, not to make virtual loser friends… nuff said


yet you seem to be posting on this site currently, which means infact you are not outside with your irl friends, instead proving our point right, and are a little nerd who likes to stay at home and watch the computer bot for him, nuff said.

Abu

2012-07-13 14:56:44

From: Adamcoled
Any previous version we can go back to?


Nope.

SRL won't work for you.

YesMan

2012-07-13 14:59:37

Do the MSI scripts work on this window or not?

Juggalo812

2012-07-13 15:00:51

From: 2496
LOOOOOOOL, I regitered so I can bot and go outside with real life friends, not to make virtual loser friends… nuff said


Why not ban this ignorant kid. He's obviously deserving of it… Look at RiD

2496

2012-07-13 15:03:19

From: lucifer0412
yet you seem to be posting on this site currently, which means infact you are not outside with your irl friends, instead proving our point right, and are a little nerd who likes to stay at home and watch the computer bot for him, nuff said.


You ever heard of smart phone?

SeaBass

2012-07-13 15:13:02

From: 2496
You ever heard of smart phone? retarted kid…


*Retarded

Tlachtli

2012-07-13 15:28:02

From: Juggalo812
Why not ban this ignorant kid. He's obviously deserving of it… Look at RiD


While I would have chosen different wording, I agree with the sentiment. It's clear 2496 has no respect for this site or its members. Perhaps giving him a week off will chill him out a little.

NKN

2012-07-13 15:37:14

This thread should be closed, and just have the OP editted on changes.

2496

2012-07-13 15:37:24

From: Tlachtli
While I would have chosen different wording, I agree with the sentiment. It's clear 2496 has no respect for this site or its members. Perhaps giving him a week off will chill him out a little.


ok so now I dont have respect for THIS site? l0l, all I did is I was arguing with rid lovers, non maxed fgts.

d_blan

2012-07-13 15:40:01

You never truly appreciate what you have until it's gone.

NKN

2012-07-13 15:41:48

From: d_blan
You never truly appreciate what you have until it's gone.


True that, +1

aznninja501

2012-07-13 15:47:00

Can we like stop spamming the thread like the first post told us to?

I'd rather see a post regarding the fix for the scripts and Simba/Smart than hearing/seeing you people flaming each other.

So disappointing when I come back and see many new posts but they were just some people arguing instead of a fix :(

MattMatt

2012-07-13 15:54:55

There is a sticky in the runescape forums on how to fix the items.


Quick find code: 25-26-757-63869568

dx osiris1

2012-07-13 16:00:00

seeing what not being able to bot is doing to us? lol children

Tlachtli

2012-07-13 16:01:35

From: 2496
ok so now I dont have respect for THIS site? l0l, all I did is I was arguing with rid lovers, non maxed fgts.


I assume when you say non maxed, you are refferring to in-game? Tell me, what bearing does that have here?

And to your comment about respecting this site, I respond with a very simple question. Answer it, then read the rest of this post: Is SRL a botting site?

- - -

If you answered yes, you do not respect the site nor the community that uses it. SRL is a site dedicated to learning a programming language. Runescape is one application of many that Simba is capable of. Learning to program has always been the primary objective here, and success ingame has always been secondary. Leechers come here and expect ingame success to be handed to them freely, and without observing this community's first objective; that is a textbook example of disrespect. If you cannot see that you do not deserve to be here, and you will find most don't want you here.

I would type more, but I'm on my phone and my thumbs are tired. I also agree this thread needs to be locked. It has devolved into a flame war at this point.

iamorange12

2012-07-13 16:04:57

From: Shay
Aren't you that one kid on RiD who nobody likes?


Yes, your answer is, yes… he is…

Footy

2012-07-13 16:10:07

From: hunnyitsme3
I didnt find 503, but I did find 553… should we change it to 603??

No,no. they already changed it to 553 in a recent SRL update. Thats no longer an issue.

YoHoJo

2012-07-13 16:13:08


OMG FIX WORKING ALL BETTER AFTER UPDATE
Look everyone I am autoing!


(Post on there about it, it's in the NOTA(spam) section!)
SEE HERE(Click)!

Varrock

2012-07-13 16:16:15

Thank you everyone for your time and committment to update the script:) Thanks to you guys i can get back to finishing my first script!

2496

2012-07-13 16:22:02

From: Tlachtli
I assume when you say non maxed, you are refferring to in-game? Tell me, what bearing does that have here?

And to your comment about respecting this site, I respond with a very simple question. Answer it, then read the rest of this post: Is SRL a botting site?

- - -

If you answered yes, you do not respect the site nor the community that uses it. SRL is a site dedicated to learning a programming language. Runescape is one application of many that Simba is capable of. Learning to program has always been the primary objective here, and success ingame has always been secondary. Leechers come here and expect ingame success to be handed to them freely, and without observing this community's first objective; that is a textbook example of disrespect. If you cannot see that you do not deserve to be here, and you will find most don't want you here.





I would type more, but I'm on my phone and my thumbs are tired. I also agree this thread needs to be locked. It has devolved into a flame war at this point.




make paid scripts then, I dont mind to pay for it or donate. And I came here to bot, dont have time or patience to learn to code, plus im not a nerd. And idc if any1 likes me and wants me, im always around :)
Respect me and I will respect you back.

sickle

2012-07-13 16:25:39

Did I miss something? Updated SRL but still the same for me??

hunnyitsme3

2012-07-13 16:30:03

I don't get it.. is this fixed I just got done looking through all of these posts and there's just alot of hate mail going on does this mean it has been fixed or has this been made a spam zone warfare hot spot??

YoHoJo

2012-07-13 16:33:08

From: hunnyitsme3
I don't get it.. is this XX fixed I just got done looking through all of these posts and there's just alot of hate mail going on does this mean it has been fixed or has this been made a spam zone warfare hot spot??


The last part, and you are just adding fuel to the fire.
And don't cuss.

slayer720

2012-07-13 16:48:59

Hey does any one know a solution for this problem I open the bot it's okay And script compiles but after smart loads the red cursor appears but doesn't move does any one know a solution I'm desperately in need of guides or solution on how to fix it .

aznninja501

2012-07-13 16:54:53

From: slayer720
Hey does any one know a solution for this problem I open the bot it's okay And script compiles but after smart loads the red cursor appears but doesn't move does any one know a solution I'm desperately in need of guides or solution on how to fix it .


I want to know a fix too but I am very new to both the website and scripting. Just wait for the developers for the fix. All we amateurs can do at the moment.

Silent

2012-07-13 16:55:14

From: slayer720
Hey does any one know a solution for this problem I open the bot it's okay And script compiles but after smart loads the red cursor appears but doesn't move does any one know a solution I'm desperately in need of guides or solution on how to fix it .


Please, please read the first post. I beg of you.

Brandon

2012-07-13 17:10:18

Look guys.. the more you spam, the more you miss the important posts.. RSBot goes down for a week, no one complains. SRL goes down for a day and a half and all hell breaks loose. Without all that spam, you guys would have seen everything already.

Simba itself is going to have the fix.

mukakall

2012-07-13 17:31:32

From: 2496
You ever heard of smart phone? retarted kid…


so you quote that you are on the smart phone and you say that you are out with your irl friends. Now why would you be out with your irl friends on your smart phone talking to people YOU do not care about and the community you don't give a crap about. Explain please :duh:

2496

2012-07-13 17:53:13

From: mukakall
so you quote that you are on the smart phone and you say that you are out with your irl friends. Now why would you be out with your irl friends on your smart phone talking to people YOU do not care about and the community you don't give a crap about. Explain please :duh:


Was working tbh, if I am outside, doesnt mean I am with friends 24/7 lool, and I like to argue tbh, all those rid fgt raging now, that I am using better bot ;D

NKN

2012-07-13 18:01:33

Guys!
Just shut up and take it to PM!
I'd rather have information, not a flame war!

slayer720

2012-07-13 18:09:03

Then know we should wait till the devolopers update simba and smart. thanks

NKN

2012-07-13 18:11:30

This thread just needs to close.

ThatGuy727

2012-07-13 18:12:31

then what about the status of the actual fix?

NKN

2012-07-13 18:13:11

It's somewhere on this thread, go look for it.

ThatGuy727

2012-07-13 18:18:01

i'm sorry but i'm not going to read through spamming and flaming…just not doing it

NKN

2012-07-13 18:18:27

Then don't post.

Zala

2012-07-13 18:21:38

From: NKN
It's somewhere on this thread, go look for it.


No thanks.

Don't really want to be fucked around with, plus i've already read this entire thread twice.

Whenever there are fixes actually mentioned they aren't explained properly. The only thing necessary to tell us is where to put these pieces of code, / what files to edit.

If it was actually simply explained instead of users being mocked, the spam in this thread wouldn't exist.

YoHoJo

2012-07-13 18:22:04

If I close, many others will pop up.
Reason I made this was so multiple threads full of spam weren't made.

Tlachtli

2012-07-13 18:24:41

From: ThatGuy727
i'm sorry but i'm not going to read through spamming and flaming…just not doing it


From: Zala
No thanks.

Don't really want to be fucked around with, plus i've already read this entire thread twice.

Whenever there are fixes actually mentioned they aren't explained properly. The only thing necessary to tell us is where to put these pieces of code, / what files to edit.

If it was actually simply explained instead of users being mocked, the spam in this thread wouldn't exist.




Well, this takes leeching to a new level. You are told where to find the fix, and still you insist someone hand it to you. I'm glad the update hasn't been publicly pushed out yet.

Zala

2012-07-13 18:28:12

Well, this takes leeching to a new level. You are told where to find the fix, and still you insist someone hand it to you. I'm glad the update hasn't been publicly pushed out yet.


"Hey guys, we've released a new free version of Grooveshark, it's a program that tens of thousands of people leech from, and guess what - we're going to give you a download link instead of hiding it in a treasure trail whilst everyone who helped us script it will laugh at you, because hey - guess what, lots of people use this program, if you release it to the public, there will be leechers, you're just going to have to deal with that and stop acting as if it's only supposed to be available to you"

</rant>

Fed up with some of the attitudes with here.

sacapuntas

2012-07-13 18:28:42

This thread has gotten way out of control. The reality is that this thread is being lurked by about 30 guys from the ages of 10-30+ constantly refreshing, waiting for the fix that was promised to be released within 24 hours. It has now been, I think, 3 days. I can see why everyone is getting irritable and flaming the guys that are complaining with the accounts they just made for the occasion.

The bottom line is that everyone needs to stop posting here, and instead, try and search for the solution that yohojo said was in this thread. Don't post in this thread unless you have something positive or constructive to add to it. Either wait an unknown amount of time for the fix, or try and throw out ideas that could possibly fix it temporarily. This thread contains over 20 pages of mostly useless spam, and it needs to stop now.

Zala

2012-07-13 18:30:12

The bottom line is that everyone needs to stop posting here, and instead, try and search for the solution that yohojo said was in this thread. Don't post in this thread unless you have something positive or constructive to add to it. Either wait an unknown amount of time for the fix, or try and throw out ideas that could possibly fix it temporarily. This thread contains over 20 pages of mostly useless spam, and it needs to stop now.


Or they could choose not to be assholes and just edit the OP.

sacapuntas

2012-07-13 18:34:39

From: Zala
Or they could choose not to be assholes and just edit the OP.


You act like you're entitled to something… You obviously use a compiler and script that someone else made without ever saying thank you. Now, when it's down for 3 days, you get all pissy and act like you deserve to leech off of their work? Figure out the solution yourself or find another place to leech off of.

Adamcoled

2012-07-13 18:35:22

Seriously? 'We've got a fix, however you need to sort through over 20 pages to find it while we keep the OP the same as if the problem doesn't have a temporary fix yet.'
This brings trolling to whole new level, never expected to see it here on villavu. Let alone by a fucking mod.

Adamcoled

2012-07-13 18:37:17

From: sacapuntas
You act like you're entitled to something… You obviously use a compiler and script that someone else made without ever saying thank you. Now, when it's down for 3 days, you get all pissy and act like you deserve to leech off of their work? Figure out the solution yourself or find another place to leech off of.
Funny how you encourage him to no life himself out to a website that you quite clearly stated isn't going to be here forever. Learn to put proper sentences together that don't contradict each other.

ThatGuy727

2012-07-13 18:37:37

http://villavu.com/forum/showpost.php?p=1067435&postcount=240

is this the fix?

sacapuntas

2012-07-13 18:42:37

From: ThatGuy727
http://villavu.com/forum/showpost.php?p=1067435&postcount=240

is this the fix?


It looks promising, I'll see what to do with the rar file in it.

YoHoJo

2012-07-13 19:00:48

From: Zala
"Hey guys, we've released a new free version of Grooveshark, it's a program that tens of thousands of people leech from, and guess what - we're going to give you a download link instead of hiding it in a treasure trail whilst everyone who helped us script it will laugh at you, because hey - guess what, lots of people use this program, if you release it to the public, there will be leechers, you're just going to have to deal with that and stop acting as if it's only supposed to be available to you"

</rant>

Fed up with some of the attitudes with here.


From: Zala
Or they could choose not to be assholes and just edit the OP.


From: Adamcoled
Seriously? 'We've got a fix, however you need to sort through over 20 pages to find it while we keep the OP the same as if the problem doesn't have a temporary fix yet.'
This brings trolling to whole new level, never expected to see it here on villavu. Let alone by a fucking mod.


Simba and SRL are free.
Worked on by people on their own personal free time.
Currently everything is very broken, and they are working as hard as they can on fixes for for everything.
A fix is out, but it's very ghetto/not official/not proper.
If it was to be released (and explained how to do) the thread would just turn into a thread just like this.
If you know how to read you will find the fix in this thread, and even then, you still need to know how to code (not very well, and not for every script to work but for many scripts to work) to apply the fix.
For that reason, you must all just wait for an official fix.

From: sacapuntas

The bottom line is that everyone needs to stop posting here, and instead, try and search for the solution that yohojo said was in this thread. Don't post in this thread unless you have something positive or constructive to add to it. Either wait an unknown amount of time for the fix, or try and throw out ideas that could possibly fix it temporarily. This thread contains over 20 pages of mostly useless spam, and it needs to stop now.

From: sacapuntas
You act like you're entitled to something… You obviously use a compiler and script that someone else made without ever saying thank you. Now, when it's down for 3 days, you get all pissy and act like you deserve to leech off of their work? Figure out the solution yourself or find another place to leech off of.


<3

Sin

2012-07-13 19:05:46

From: sacapuntas
You act like you're entitled to something… You obviously use a compiler and script that someone else made without ever saying thank you. Now, when it's down for 3 days, you get all pissy and act like you deserve to leech off of their work? Figure out the solution yourself or find another place to leech off of.


I like you.

@Everyone else, like the man above me says, you are NOT ENTITLED TO ANYTHING.
You aren't paying for it, it's a FREE service. We are NOT your servants, we have lives too and we can't dedicate them to SRL.

@Adam, we're not trolling you, wait patiently and try to conjure a IQ level higher than 5. The fix will be fixed when it's fixed. Kapish?

Zala

2012-07-13 19:10:53

@Zala, we're not trolling you, grow up and try to conjure a IQ level higher than 5. The fix will be fixed when it's fixed. Kapish?


Couple of things. First off, I personally never said that you were trolling. Trolling, for one thing is actually funny. What you're doing isn't.

Secondly, firing cheap shots like that isn't really becoming of someone who's telling me to grow up myself.

And finally, we now know a fix exists - I'm fine waiting for 'a' fix, but when one actually exists and you're just holding it back from your users, that's where I get a tad annoyed.

Sin

2012-07-13 19:12:32

From: Zala
Couple of things. First off, I personally never said that you were trolling. Trolling, for one thing is actually funny. What you're doing isn't.

Secondly, firing cheap shots like that isn't really becoming of someone who's telling me to grow up myself.

And finally, we now know a fix exists - I'm fine waiting for 'a' fix, but when one actually exists and you're just holding it back from your users, that's where I get a tad annoyed.


FML I meant Adam :duh:

YoHoJo

2012-07-13 19:12:49

We are not holding back on purpose, we are holding back because it's not a simple fix, and even if we did post it, it would be of no use to you.
That is why you must all just wait for a fix.

No one is trying to be rude, or hold anything back, or anything like that.
We just want to avoid more spam and questions until a simple official fix is out.

Abu

2012-07-13 19:13:34

Only thing that really needs to be said is

OP will be updated, when an official fix is found

print

2012-07-13 19:14:48

yohjo i rep you=)

Mister Snow

2012-07-13 19:17:33

I am using Smart right now to bot. They did give us a quick fix… which re-sized Smart.

If you want to bot, write a login script for yourself that goes into your actual script, and either fix the coordinates on your current script, or write your own.

Lazy kids. You see the position you are in right now? Bitching, waiting on someone do get it done and complaining?

You're always going to be in that position if you don't stop being a lazy twit.

… always whining and complaining.

:duh:

L00PH0LE

2012-07-13 19:38:18

From: YoHoJo
The last part, and you are just adding fuel to the fire.
And don't cuss.


There should be a filter for that whole not cussing thing, I don't imagine it'd be too terribly difficult to write one from scratch.

Austin

2012-07-13 19:41:24

From: L00PH0LE
There should be a filter for that whole not cussing thing, I don't imagine it'd be too terribly difficult to write one from scratch.


People would get around it easily, so there wouldn't really be any point in doing so lol

creedgaming

2012-07-13 19:42:34

I have bought several VPS , and paid monthly…. For my bots …. And you don't hear me complaining cause I appreciate the work everyone does to make the scripts work , and the scripts themselves…

Leonardo Da Vinci

2012-07-13 19:51:42

For a free service, there certainly seems to be a lot of whining.
The devs are working on their own time to work on something they just give to us and ask for nothing in return.
Just relax, it'll be out in no time.

creedgaming

2012-07-13 19:56:35

From: Law and Justice
For a free service, there certainly seems to be a lot of whining.
The devs are working on their own time to work on something they just give to us and ask for nothing in return.
Just relax, it'll be out in no time.


Should be a paid service… I'd drop $4.99 or whatever each month…. People would leave but those aren't people ya want anyways….

Leonardo Da Vinci

2012-07-13 19:58:45

From: creedgaming
Should be a paid service… I'd drop $4.99 or whatever each month…. People would leave but those aren't people ya want anyways….


Same here.
Perhaps the devs and mods should consider it.

NKN

2012-07-13 19:58:48

If it's paid, there could be some major trouble;

Austin

2012-07-13 20:05:16

From: creedgaming
Should be a paid service… I'd drop $4.99 or whatever each month…. People would leave but those aren't people ya want anyways….


Why would you want people to pay? Then they WOULD have a legitimate reason to rage on threads for things not being fixed soon enough >.<

Leonardo Da Vinci

2012-07-13 20:09:45

From: AustnW
Why would you want people to pay? Then they WOULD have a legitimate reason to rage on threads for things not being fixed soon enough >.<


That's a good point…
Where do we donate?

kevin33

2012-07-13 20:12:24

Your FAQ tab, itll be at the top under Donate –Donate to SRL.

Leonardo Da Vinci

2012-07-13 20:31:07

From: kevin33
Your FAQ tab, itll be at the top under Donate –Donate to SRL.


Thanks buddy!

Sin

2012-07-13 20:33:47

From: KLight
I'm taking this down time to learn some programming. At least it should keep me busy and perhaps I get to add to the scripts in the future :D


Learn from him! This is an ideal chance :D

creedgaming

2012-07-13 20:34:59

From: AustnW
Why would you want people to pay? Then they WOULD have a legitimate reason to rage on threads for things not being fixed soon enough >.<


Well then theres no leaching , you're not getting something for nothing…. And no all the leachers , annoying jerks would go elsewhere… Keep it real….

fumaor

2012-07-13 21:18:15

working xd?

edmondc1

2012-07-13 21:24:18

paid or unpaid i think scripters should get vip benifits!

as for leechers… leaches gon leech!!!
and i seen many a site where they made something paid and the leeches stayed and Ddosed site

Justin

2012-07-13 21:34:28

From: belbn
Simple fix for all uptext functions:

text.simba


Thanks for that, but there has already been a fixed posted

lordzorna

2012-07-13 21:45:27

The reason why scripts are better if they're free - is that srl doesn't have to be shut down since it's essentially a non-profit, and jagex can't do anything about non-profits other than bribe them to shut down the site. It really is up to us to donate to SRL - to not only reward the scripters/developers but also to make sure this site keeps going.

- The end result you ask? cheaper coal/dragon bones/food/ - everything is cheap :)
- we don't have to be pay 100's of mils to get levels either
- b4 i got hacked i could get 95 pray for only 80m - LOL - now im stuck at 88 cause of my stupidity

s_guy

2012-07-13 22:42:54

Just wanted to take this opportunity to thank the developers and scripters for their efforts (e.g., YoHoJo, Narcle, and the countless others). Your work really adds a fun aspect to the Runescape game. It's even encouraging an old retired duffer like myself to try and learn more. Give yourself a big pat on the back because you certainly earned it.

with respect for your time and effort,

SGuy

Sin

2012-07-13 22:43:38

From: s_guy
Just wanted to take this opportunity to thank the developers and scripters for their efforts (e.g., YoHoJo, Narcle, and the countless others). Your work really adds a fun aspect to the Runescape game. Its even encouraging an old retired duffer like myself to try and learn more. Give yourself a big pat on the back because you certainly earned it.

with respect for you time and effort,

SGuy


Can't, don't have the strength to lift my sausage arms :<

Leonardo Da Vinci

2012-07-13 22:55:34

From: Shay
Can't, don't have the strength to lift my sausage arms :<


Mmmm… Sausage…

h4jgyvis

2012-07-13 23:11:56

I'm not sure who to tell, but since the update S.M.A.R.T. has stopped functioning for me altogether. It worked before, although my scripts mostly wouldn't. After it updated, now even the simplest script causes S.M.A.R.T. to either freeze up or take forever to do anything.

For example, I'm currently running this script:
program New;
{$DEFINE SMART}
{$i SRL\SRL.simba}

begin
MoveMouse(100, 100);
end.

…it compiled in 2613 ms and is going on eleven minutes now without completing. :(

My operating system is Ubuntu 10.04, and running Simba on Wine 1.2.2.

Hope that helps!

blinkblink

2012-07-13 23:39:27

From: h4jgyvis
I'm not sure who to tell, but since the update S.M.A.R.T. has stopped functioning for me altogether. It worked before, although my scripts mostly wouldn't. After it updated, now even the simplest script causes S.M.A.R.T. to either freeze up or take forever to do anything.

For example, I'm currently running this script:
program New;
{$DEFINE SMART}
{$i SRL\SRL.simba}

begin
MoveMouse(100, 100);
end.

…it compiled in 2613 ms and is going on eleven minutes now without completing. :(

My operating system is Ubuntu 10.04, and running Simba on Wine 1.2.2.

Hope that helps!


/facepalm

you/we have to wait for the fix…

creedgaming

2012-07-13 23:48:57

From: lordzorna
The reason why scripts are better if they're free - is that srl doesn't have to be shut down since it's essentially a non-profit, and jagex can't do anything about non-profits other than bribe them to shut down the site. It really is up to us to donate to SRL - to not only reward the scripters/developers but also to make sure this site keeps going.

- The end result you ask? cheaper coal/dragon bones/food/ - everything is cheap :)
- we don't have to be pay 100's of mils to get levels either
- b4 i got hacked i could get 95 pray for only 80m - LOL - now im stuck at 88 cause of my stupidity


You can word it in a way you're paying for Access to the site not the Bot program , you can craft it in a legal way…. And lets face it $4.99 or something is damn close to Free and open source….

Silent

2012-07-14 00:35:14

From: creedgaming
You can word it in a way you're paying for Access to the site not the Bot program , you can craft it in a legal way…. And lets face it $4.99 or something is damn close to Free and open source….


close, but isn't. And goes against the whole concept of free and open source. You don't pay access to something that is open to the public. It's a programming community first, which means Villavu/SRL wants everyone to be able to learn and apply their skills. No sense in making it paid, besides if it was paid you would still have these problems and less people would be able to help solve them resulting in a fix taking even longer.

grats

2012-07-14 00:44:55

From: h4jgyvis
I'm not sure who to tell, but since the update S.M.A.R.T. has stopped functioning for me altogether. It worked before, although my scripts mostly wouldn't. After it updated, now even the simplest script causes S.M.A.R.T. to either freeze up or take forever to do anything.

For example, I'm currently running this script:
program New;
{$DEFINE SMART}
{$i SRL\SRL.simba}

begin
MoveMouse(100, 100);
end.

…it compiled in 2613 ms and is going on eleven minutes now without completing. :(

My operating system is Ubuntu 10.04, and running Simba on Wine 1.2.2.

Hope that helps!


Believe it or not we're well aware of things not working

oliver1205

2012-07-14 01:29:10

cant you just run scripts in a vitrual machine instead of smart? like RID

YoHoJo

2012-07-14 01:35:51

From: oliver1205
cant you just run scripts in a vitrual machine instead of smart? like RID


That's not even the problem, the problem is the extra bar added on top of the client.
Along with MM dots/flags looking wierd and items looking deformed/going invisible.
The problem exists when using either SMART of the web client.

But yes Simba can run in a VM, anything you can run on a comp can run in a VM.

h4jgyvis

2012-07-14 02:32:24

From: blinkblink
/facepalm

you/we have to wait for the fix…


From: grats
Believe it or not we're well aware of things not working


No need to be rude. I'm not complaining; I'm trying to help. Judging from what I've read on the forums, most members are using Windows systems, and those that aren't are on Macs. The developers may not be aware that their temporary fix has rendered S.M.A.R.T. un-usable on Windows emulators for Linux, such as Wine, and I thought that it was something they'd want to know.

L00PH0LE

2012-07-14 03:10:10

From: AustnW
People would get around it easily, so there wouldn't really be any point in doing so lol


Meh, they'd use words that pronounce the same but they wont actually be the same. So it wouldn't be pointless at all! :rolleyes:

Flight

2012-07-14 03:14:50

From: h4jgyvis
No need to be rude. I'm not complaining; I'm trying to help. Judging from what I've read on the forums, most members are using Windows systems, and those that aren't are on Macs. The developers may not be aware that their temporary fix has rendered S.M.A.R.T. un-usable on Windows emulators for Linux, such as Wine, and I thought that it was something they'd want to know.


You're right, they might not know about that. That'd be a good point to bring up.

chronicle13

2012-07-14 07:27:00

In regards to charging for scripts, wouldn't that entitle Jagex to sue? I swear they sued a bunch of bot companies for that.

bricks

2012-07-14 07:45:44

This might sound weird but I actually appreciate the bot going down for a few days…made me realize what is more important in life than the computer screen.

fire_burn_00

2012-07-14 08:17:53

The bots going down have made me lose my life by going to the computer screen instead of going out while my bot worked :D Opposite views I guess

Flight

2012-07-14 08:29:17

From: chronicle13
In regards to charging for scripts, wouldn't that entitle Jagex to sue? I swear they sued a bunch of bot companies for that.


I don't see what grounds they could stand on to sue a scripter anyone here. Simba is a general compiler, SMART simply loads the RS client; there are no modifications, and SRL is a library of pre-written procedures/functions/constants/variables. And as our leader WT-Fakawi said in the past, should it come to a legal dispute between Jagex & Villavu then we'll simply shut the doors and work in private. So to be on the safe side, it's a good idea to learn & gain atleast a Members rank now so you'll always be assured access later. ;)

From: bricks
This might sound weird but I actually appreciate the bot going down for a few days…made me realize what is more important in life than the computer screen.


That's good then. :) No body said you had to spend so much time around a computer, if you have other things you'd rather do, do it! I imagine we'll still be here tomorrow. ;)

grats

2012-07-14 08:33:35

From: h4jgyvis
No need to be rude. I'm not complaining; I'm trying to help. Judging from what I've read on the forums, most members are using Windows systems, and those that aren't are on Macs. The developers may not be aware that their temporary fix has rendered S.M.A.R.T. un-usable on Windows emulators for Linux, such as Wine, and I thought that it was something they'd want to know.


I actually think that might be the most popular way people are running it

especially for members? There are tons of threads I see with people using wine (myself included)

damienjp

2012-07-14 08:35:13

ya keep saying the "BOTS" are down.. been botting like champ since the update :D

AFAIK only this bot is down atm ;) hope ya get it up and running soon. ironically usually after an update this bot is chugging along while all the others are down.

grats

2012-07-14 08:37:27

From: damienjp
ya keep saying the "BOTS" are down.. been botting like champ since the update :D

AFAIK only this bot is down atm ;) hope ya get it up and running soon. ironically usually after an update this bot is chugging along while all the others are down.


It isn't down? People have done some of the fixes since hours after the update.. just an update devs like enough to make public hasn't been pushed

speedster

2012-07-14 08:38:25

This isn't a bot, and nothing is down. Simba is fully functional, if you had the knowledge to edit the scripts you wouldn't be saying that.

Mister Snow

2012-07-14 08:44:59

From: speedster
This isn't a bot, and nothing is down. Simba is fully functional, if you had the knowledge to edit the scripts you wouldn't be saying that.


This 100%.

Like I said before: They rolled an update for re-sizing smart VERY quickly.

I am botting right now with that.

damienjp

2012-07-14 08:48:14

From: speedster
This isn't a bot, and nothing is down. Simba is fully functional, if you had the knowledge to edit the scripts you wouldn't be saying that.



** not even gonna bother.. gratz on getting the bot back up.

london

2012-07-14 09:16:32

Sigh, i understand that i'm a leacher hell most people viewing this are. I don't have any coding knowledge but if a guide was provided maybe i could read it and understand some of the logic?

I the meantime i'll wait for the bots to come back up well they're already up but you know what i mean

mukakall

2012-07-14 09:21:33

In this thread there is a temp-fix for SMART. loads of people could have seen this if 3/4 of the page was not full of arguments or people saying "when is the fix going to happen"

shadow131

2012-07-14 09:39:31

Is this also the reason why I can't see the whole RS screen in my SMART window? I've set my options on on 'fixed' and I'm still having this issue =/

Leonardo Da Vinci

2012-07-14 09:44:50

From: shadow131
Is this also the reason why I can't see the whole RS screen in my SMART window? I've set my options on on 'fixed' and I'm still having this issue =/


:duh:

klamse

2012-07-14 09:50:42

From: Law and Justice
:duh:


Instead of spamming, you could at least tell him what he's doing wrong.

Leonardo Da Vinci

2012-07-14 09:53:57

I get the feeling there's nothing he can do.
He should have at least read the thread.

Nemesis3X

2012-07-14 10:06:32

Long time I didn't post, but I feel like giving you guys an advice since I finally managed to fix my script and make it works again and be back on the road to another 99 :-). Yes, I am currently botting! and I feel alone since normaly, there are 20+ people with me anytime, but now, we are only 5 ;-( I wonder where those 20+ people that are always there decided to do? Lol

Just so you guy know, there has been a fix posted somewhere in this thread… So, if you want to start botting again, better look at it, but another problem will come right after you fix simba, Almost Every Script will need to be Fixed since a few things are still messed up and it is the best time to take your hand and move your mouse to the nice section called tutorial and start reading tutorial about how to script or at least learn how things work, so you can read a whole script and fix minors things without waiting for the owner of the script to fix and update it here. Like a large number of people, I started by fixing others script, before making my first script since it is way easier to fix something already made than trying to make a new one.

djborec

2012-07-14 10:17:41

I wonder How could you fix your bot? IF it fives error in SetupSRL… When SMART is loaded ,it just loads it again and again… So wont even start….

RSReady function has static coordinations , so its broken and SetupSRL will never end…

Also many other many other functions are broken… really hard to bot with these functions.

rs_getUpText broken..

damienjp

2012-07-14 10:23:29

From: djborec
I wonder How could you fix your bot? IF it fives error in SetupSRL… When SMART is loaded ,it just loads it again and again… So wont even start….

RSReady function has static coordinations , so its broken and SetupSRL will never end…

Also many other many other functions are broken… really hard to bot with these functions.


and i was told it's up and running >.>

Tlachtli

2012-07-14 10:24:19

From: djborec
I wonder How could you fix your bot? IF it fives error in SetupSRL… When SMART is loaded ,it just loads it again and again… So wont even start….

RSReady function has static coordinations , so its broken and SetupSRL will never end…

Also many other many other functions are broken… really hard to bot with these functions.


A hotfix currently exists (in this very thread, even), but to the best of my knowledge it is being intentionally kept secret to 'force' the leechers to learn to script. It's entirely possible to fix it yourself, if you know what you're doing.

shadow131

2012-07-14 10:27:46

From: klamse
Instead of spamming, you could at least tell him what he's doing wrong.


What AM I doing wrong?


Also, you can't expect me to read all 25 pages of the thread :/
I did read the starter thread and it's not very detailed as to why SMART isn't working besides the inventory bit…

djborec

2012-07-14 10:34:54

From: Tlachtli
A hotfix currently exists (in this very thread, even), but to the best of my knowledge it is being intentionally kept secret to 'force' the leechers to learn to script. It's entirely possible to fix it yourself, if you know what you're doing.


Yes was not too hard to fix ,but for example if I want to getUpText…



I can not edit rs_GetUpText function coordinates …becasuse SIMBA does not allow me to do it..

Actually working on InvCount ,but I find litle bit hard to fix it.

Leonardo Da Vinci

2012-07-14 10:55:01

From: shadow131
What AM I doing wrong?


Also, you can't expect me to read all 25 pages of the thread :/
I did read the starter thread and it's not very detailed as to why SMART isn't working besides the inventory bit…


Kinda lazy. I would give it to you, but I'm too lazy also.
But just know, it's in there somewhere…

Nemesis3X

2012-07-14 11:38:28

From: Law and Justice
Kinda lazy. I would give it to you, but I'm too lazy also.
But just know, it's in there somewhere…


Feel the same, that's why I didn't link anything in my post.
Perhaps, here a small video I just make 5 minute ago :-)
If you didn't belive I was botting, this video will show it with this thread open on my screen.

http://youtu.be/rDZwdqKhzyE

djborec

2012-07-14 11:50:39

What happend to GetColor function? Its totaly not working… I added long wait, checked manually if at particular position is that Color and it is ,but GetColor returning totally diferent color?

Leonardo Da Vinci

2012-07-14 12:09:06

From: Nemesis3X
Feel the same, that's why I didn't link anything in my post.
Perhaps, here a small video I just make 5 minute ago :-)
If you didn't belive I was botting, this video will show it with this thread open on my screen.

http://youtu.be/rDZwdqKhzyE


Oh snap!
Which scripts do you have going?

hackerb

2012-07-14 12:09:31

Can somebody tell me how its possible to keep SMART alive when you stop your script and run again?

This would help me alot with making a temporary fixed SRL lib, because i am fixing some functions in the library so its possible to make some basic bots again :)

if this temporary SRL works I might place it somewhere for download
(if this is allowed by the forum moderators)

klamse

2012-07-14 12:37:13

Even when Simba is fixed, I won't be able to bot.
I still have the item glitch. :(
I tried deleting my cache, but there must be some more cache stored elsewhere.
Where are the locations for all of the caches?

Austin

2012-07-14 13:19:06

From: london
Sigh, i understand that i'm a leacher hell most people viewing this are. I don't have any coding knowledge but if a guide was provided maybe i could read it and understand some of the logic?

I the meantime i'll wait for the bots to come back up well they're already up but you know what i mean

There are some great guides in the tutorial section for beginner's and advanced scripters. I'd suggest to look there for a good guide while we wait for an official fix. Coh3n has some great tutorials that i found helpful when i arrived here. :)

Mister Snow

2012-07-14 13:32:59

From: shadow131
Is this also the reason why I can't see the whole RS screen in my SMART window? I've set my options on on 'fixed' and I'm still having this issue =/


Update, or change your coordinates within smart. Some people were kind enough to even provide exact codes.

You'll also need to re-write a log in script. Simba will still know when SMART is done loading to start typing your login name. Many of the SRL login commands are going to fail, so write your own functions.

From: mukakall
In this thread there is a temp-fix for SMART. loads of people could have seen this if 3/4 of the page was not full of arguments or people saying "when is the fix going to happen"


They even rolled out an update…

From: djborec
I wonder How could you fix your bot? IF it fives error in SetupSRL… When SMART is loaded ,it just loads it again and again… So wont even start….

RSReady function has static coordinations , so its broken and SetupSRL will never end…

Also many other many other functions are broken… really hard to bot with these functions.

rs_getUpText broken..


Update SRL…?

ANYTHING that dealt with coordinates is broken. All you have to do is edit the function yourself… or re-write one. Getuptext is broken because it is looking in the wrong place for text now. Fix the coordinates.

You can double click the function to see how THEY coded it, you don't even have to think of it yourself. Then edit it yourself, and done.

Silent

2012-07-14 14:12:54

From: klamse
Even when Simba is fixed, I won't be able to bot.
I still have the item glitch. :(
I tried deleting my cache, but there must be some more cache stored elsewhere.
Where are the locations for all of the caches?


Item glitch hadn't been fixed by rs yet. The cache was just something they suggested.

They should have a proper fix soon. Just like srl. :)

Zala

2012-07-14 14:55:56

You've surely got to understand that not every single person using this has to be a coder..

Ok so you say that coordinates need changing… I changed the SRL/srl/misc/smart 503s to 553s.. ok, it logs in. Welcome screen - the cursor doesn't move to the right spot.

Now what you were saying is that the actual script you were using needs to be edited - Bullshit. You should've been more specific and actually say those things exist in the same directories as before, login.simba, inventory.simba, etc. NOT the actual fucking file.

Thanks for nothing.

E: You know a better way to teach people would be to assist them instead of redirecting them to fucking generic tutorials.

Brandon

2012-07-14 14:59:52

LOL the more you people post like this, the more the fix gets buried in the thread. I posted 3 temporary fixes that already work. Uptext works as well.. LEARN TO READ.

The first post said if you don't know what ur doing, don't post. Yet you guys post a bunch of crap and rage at eachother and bury the temporary fixes. Good luck finding it now.

P.S. Simba itself will be the official fix.

djborec

2012-07-14 15:01:31

From: Mister Snow
Update, or change your coordinates within smart. Some people were kind enough to even provide exact codes.

You'll also need to re-write a log in script. Simba will still know when SMART is done loading to start typing your login name. Many of the SRL login commands are going to fail, so write your own functions.



They even rolled out an update…



Update SRL…?

ANYTHING that dealt with coordinates is broken. All you have to do is edit the function yourself… or re-write one. Getuptext is broken because it is looking in the wrong place for text now. Fix the coordinates.

You can double click the function to see how THEY coded it, you don't even have to think of it yourself. Then edit it yourself, and done.



No simba wont allow you to edit rs_getUpText, so you can not edit…

From: Brandon
LOL the more you people post like this, the more the fix gets buried in the thread. I posted 3 temporary fixes that already work. Uptext works as well.. LEARN TO READ.

The first post said if you don't know what ur doing, don't post. Yet you guys post a bunch of crap and rage at eachother and bury the temporary fixes. Good luck finding it now.

P.S. Simba itself will be the official fix.


When did you updated it? I was trying with latest SRl like 6 hours ago and it did not worked.

Zala

2012-07-14 15:03:06

From: Brandon
LOL the more you people post like this, the more the fix gets buried in the thread. I posted 3 temporary fixes that already work. Uptext works as well.. LEARN TO READ.

The first post said if you don't know what ur doing, don't post. Yet you guys post a bunch of crap and rage at eachother and bury the temporary fixes. Good luck finding it now.

P.S. Simba itself will be the official fix.


Lol, it's funny because i've seen the stuff you've posted.

It's useless if I don't know where to put this function, where to call the function, which directory, which file(s), what fix you actually meant, whether it was the shit about globals - maybe it was that .rar you posted a while back..

Tried the .rar, didn't get past lobby screen.

..

SAY 'OFFSET' ONE MORE TIME. I DOUBLE DARE YOU:

Which is why I left is as the 4 constants. x and y at login screen, x and y at Lobby/Ingame screen and left the bar how it is. Only problem is I had to use the wrapper you suggested for the uptext.


OR:

Offset the mouse like I did in the second suggestion. Only problem with this is that anyone using GetMousePos will have to add 50 to their y value.

That's it. Both of the suggestions tested fully and both work fully. But yes no need to rush anything at all. One wrong thing will throw everything off.


I see. But I have to do two of those then or something like:

Simba Code:
function SRL_BarCoord(y: integer; InGame: Boolean): integer;
begin
if (InGame) then
result := y + InGame_Const //+ 50.
else
result := y + Login_Const; //+ 22.
end;

@Everyone else saying cut this off and cut that off.. Mind saying how?


Yeah I know.. thats why I suggested two options. A: where all values have 50 added to them which I did a couple pages back. Or B: where the crap is offsetted in the mouse function itself. Or C: Someone else's ideas :S


Well this is my last and probably final suggestion: https://github.com/Brandon-T/SRL-5
We now have 3 options:

The offsets I suggested before where all values had + 50 added to them and + 22 on login screen.. Only thing required fixing was uptext. That's it.
This option that I'm offering now described below. Where the only things that are messed up is stuff like GetMousePos. All finder functions read from the offsetted value automatically. Thus I am able to bot right now since everything else works.

Or Someone else's suggestion in the thread.

I used the Pointer Offset and offset the MMouse function. That's about it. All static values automatically reflect the changes.

For example I don't have to change all the values in any include. The only includes actually changed were login.simba and player.simba.

Globals hold the pointer offset function and the login and player files will call them when necessary.

This means the entire SRL include still works. I changed nothing else. Uptext functions work too but like I said the downside is getmousepos and functions that return coordinates base on the client's dimensions. All finder functions work normally as they should and scripts will require the least amount of updates.

basically if your script uses get mousepos and relies on it heavily then every time you call getmousepos just add 50 to the y values.


Hey look, I dug up your posts. Give me another excuse for not explaining things to people normally.

Brah

2012-07-14 15:23:08

It'll be up in like a day or week or whatever. It's nice outside

Brandon

2012-07-14 15:34:00

From: Zala
Lol, it's funny because i've seen the stuff you've posted.

It's useless if I don't know where to put this function..

SAY 'OFFSET' ONE MORE FUCKING TIME. I DOUBLE DARE YOU..

Hey look, I dug up your posts. Give me another excuse for not explaining things to people normally.


LOLOL Offset the noobs.. Oops meant upset. There I said offset.. Do something about it.

You're damn disrespectful. I don't owe you anything at all.. Who do you think got this working: http://villavu.com/forum/showthread.php?t=86277

Go blame yourself not me. Don't rage at me, it's not my fault you decided to post rage comments and can't figure it out. Out of 26 pages all I read starting from the 15+ pages are just rage.

My little pony fixed it.. didn't she?

The reason I'm unnamed is to keep my inbox clean from noobs like you.. It's useless? That's why the people that can read and understand have it working. Guess I blew my cover now.. W/e..

Lastly.. when I say offset, that a conversation between me and ben. Not you or anyone else. He told me to offset the pointer. It's not my fault you read it and didn't understand that it's not meant for you.

@ the guys who said uptext can't be edited, none of you read Wizzup's post..


//In globals.simba add this to the bottom like he said before:

Function GetUptext: String;
begin
Result := RS_GetUptextAt(7, 57);
end;

Nemesis3X

2012-07-14 15:36:55

From: Zala
Lol, it's funny because i've seen the stuff you've posted.

It's useless if I don't know where to put this function, where to call the function, which directory, which file(s), what fix you actually meant, whether it was the shit about globals - maybe it was that .rar you posted a while back..

Tried the .rar, didn't get past lobby screen.


I have only one single word for your post: Really….
If you can't even manage to update the files that are located in the simba folder which is pretty much basic things like registering on this forum, I don't know how you will manage to get a script going on. . Brandon worksheet even have the name of the script that you need to open + the line of the code you need to go to replace with the new one… Seriously, even if I give you my Simba folder which use all the fixes + a few things I tried to tweaks myself, you wouldn't be able to bot since you would need to edit every single script you want to use to be able to make them work again…

From there, You would be left with 3 solutions:
1.Learn to script so you can fix the script you want to use until a update is made.
2.Beg at someone to share a working script
3.Wait until Dev Update simba and people update their script, so it can work again with the new update.

Conclusion, I recommend you wait until it is fixed, since it is beyond your knowledge.


From: ziellos
People posting about pointless shit now, what can we do about safe mode though? If the items didn't go invisible it'd be possible to find a work around but at this point I only see ogl or directx interception as an option.


For now, maybe items goes invis, but it is really easy to bypass it. I will even share how bypassed this little thing, I simply made a little procedure that move the mouse over inventory and look for uptext. I have been superheating for 10+ hours now with invisible items, since I change the way the Script work to use only Uptext! and not dtm nor color

Mister Snow

2012-07-14 15:43:22

From: djborec
No simba wont allow you to edit rs_getUpText, so you can not edit…



When did you updated it? I was trying with latest SRl like 6 hours ago and it did not worked.



Yeah, that's why you edit it. It's a function like you would write yourself, it just happens they they have those included in the resource library.



From: Zala
You've surely got to understand that not every single person using this has to be a coder..

Ok so you say that coordinates need changing… I changed the SRL/srl/misc/smart 503s to 553s.. ok, it logs in. Welcome screen - the cursor doesn't move to the right spot.

Now what you were saying is that the actual script you were using needs to be edited - Bullshit. You should've been more specific and actually say those things exist in the same directories as before, login.simba, inventory.simba, etc. NOT the actual fucking file.

Thanks for nothing.

E: You know a better way to teach people would be to assist them instead of redirecting them to fucking generic tutorials.


Honestly, I had not written a proper script until this happened. I had done some basic stuff, but never a full script.


I had a private script made for me, because I couldn't code at all which got killed with this update.

When this happened, my coder wasn't around to help… so I went ahead, put my head down, and, starting from scratch, rebuilt another script.

I had no idea how to make functions, how variables and constants even worked… it was a foreign language. Now, not so bad. This happening was actually a good thing for me.

Zala

2012-07-14 15:44:25

LOLOL Offset the noobs.. Oops meant upset. There I said offset.. Do something about it.

You're damn disrespectful. I don't owe you anything at all.. Who do you think got this working: http://villavu.com/forum/showthread.php?t=86277

My little pony fixed it.. didn't she?

The reason I'm unnamed is to keep my inbox clean from noobs like you.. It's useless? That's why the people that can read and understand have it working.

@ the guys who said uptext can't be edited, none of you read Wizzup's post..


Nah mate, I think the one being disrespectful is the person who offers free open source software to the public - 100% in the knowledge people will leech - and then treating it as if it's private.

[Error] C:\Simba\Includes\SRL/SRL/core/text.simba(282:13): Duplicate identifier 'GETUPTEXT' at line 281


Thanks again for explaining.

Conclusion, I recommend you wait until it is fixed, since it is beyond your knowledge.


It's either beyond my knowledge or beyond Brandon's basic vocabulary.

If you can't even manage to update the files that are located in the simba folder which is pretty much basic things like registering on this forum


Slight difference - I know where to register on this forum - I don't know where to copy and paste these fixes. Because it is not explained for people who aren't master coders.

RuneDragon

2012-07-14 15:49:03

Can you please lost the page with fix ? I run script with out SMART. It stop at "LoginPlayer". LoggedIn function is returning false.

I will try to read all posts and find the fix, but it take time. Trying your git version. Hope it got the fix :P

Brandon

2012-07-14 15:51:42

From: Zala
Nah mate, I think the one being disrespectful is the person who offers free open source software to the public - 100% in the knowledge people will leech - and then treating it as if it's private.

Thanks again for explaining.

It's either beyond my knowledge or beyond Brandon's basic vocabulary.



Right.. Because offfering open-source temporary fixes is worse than keeping it closed source. LOL.

Treating it as if it's private.. oh please explain. You know how to download right? Then you should know that it isn't private if it's up there for the world to see. The instructions are clear. Replace your include with this.. Link given.

What more do you want? I cant shove choo choo train spoons down your throat in hopes that you eat. I have other things to do.. I don't live on SRL. You can't ask more of me. I give you a temp fix with one or two instructions and you blame me for you not understanding.. man the humanity.

Here you big baby:

1. Open C:/Simba/SRL/Includes. Delete SRL.Simba. Delete SRL folder. Replace it with the stuff you downloaded.

2. Open a script. After SetupSRL. Add Ignorebar. Done. Now go figure out how to fix glitched items..

3. If you don't have the latest simba and smart and sps plugins well it's your job to find it on the forums. Simba 0.99 is the name of the thread.

4. Stop whining and bitching like it's someone else's fault. Nothing is wrong with my vocabulary. It's simple instructions. "Replace your includes with this." What more do you seriously want me to say.

djborec

2012-07-14 15:53:59



@ the guys who said uptext can't be edited, none of you read Wizzup's post..


//In globals.simba add this to the bottom like he said before:

Function GetUptext: String;
begin
Result := RS_GetUptextAt(7, 57);
end;


Thanks, now its working like a charm and I can bot again. :)

Sin

2012-07-14 16:21:55

From: Zala
Lol, it's funny because i've seen the stuff you've posted.

It's useless if I don't know where to put this function, where to call the function, which directory, which file(s), what fix you actually meant, whether it was the shit about globals - maybe it was that .rar you posted a while back..

Tried the .rar, didn't get past lobby screen.

..

SAY 'OFFSET' ONE MORE FUCKING TIME. I DOUBLE DARE YOU:









Hey look, I dug up your posts. Give me another excuse for not explaining things to people normally.



If you offset your stupidity, all we have left is a 10 year old.

Leonardo Da Vinci

2012-07-14 17:06:51

Now I'm curious… Where can we get Simba 0.99?
I've been searching the forums for a while now… I can't seem to find it.
If the link has been posted here, my mistake.

shstiger2009

2012-07-14 17:11:19

From: Shay
If you offset your stupidity, all we have left is a 10 year old.


Winning.

Zala look. As Shay said, offset your stupidity.

We now have a 10 year old. Now if you offset your age, we have a 01 year old. Then if you offset that in a different way than you offset your age, then the result of the double offset is you not existing.

TL;DR- Offset your stupidity. Offset your age. Offset again. Result of offsets- nonexistence. Start offsetting.

:p

On topic- It's incredibly easy to fix bc of Brandon's work. :whistling:

rtyrty100

2012-07-14 17:12:31

From: Law and Justice
Now I'm curious… Where can we get Simba 0.99?
I've been searching the forums for a while now… I can't seem to find it.
If the link has been posted here, my mistake.


http://villavu.com/forum/showthread.php?p=1069428#post1069428

Leonardo Da Vinci

2012-07-14 17:13:48

From: rtyrty100
http://villavu.com/forum/showthread.php?p=1069428#post1069428


Awesome, thanks buddy!

Tlachtli

2012-07-14 17:15:15

From: Shay
If you offset your stupidity, all we have left is a 10 year old.


I thought we currently had a 10 year old, and the offset would make him normal again?

Sin

2012-07-14 17:17:53

From: Tlachtli
I thought we currently had a 10 year old, and the offset would make him normal again?


Damn, good call.

Zala

2012-07-14 17:25:10

On topic- It's incredibly easy to fix bc of Brandon's work.


that's helpful thanks.

whatever. i give up.

damienjp

2012-07-14 17:33:01

From: Zala


SAY 'OFFSET' ONE MORE FUCKING TIME. I DOUBLE DARE YOU:



omfgzroflmao… i spit my food out lol'ing

Silent

2012-07-14 17:33:26

From: Zala
that's helpful thanks.

whatever. i give up.


He gave you specific instructions.. In case you missed it:
http://villavu.com/forum/showpost.php?p=1069637&postcount=648

Edit: download also found at: http://villavu.com/forum/showpost.php?p=1067773&postcount=320

klamse

2012-07-14 17:34:57

Brandon's fix works wonderfully! Thanks man. :)

RuneDragon

2012-07-14 17:36:59

From: Silent SPY
He gave you specific instructions.. In case you missed it:
http://villavu.com/forum/showpost.php?p=1069637&postcount=648


Can you please give the download link.

YoHoJo

2012-07-14 17:39:33

From: RuneDragon
Can you please give the download link.


https://github.com/Brandon-T/SRL-5/zipball/master
Pretty sure.

klamse

2012-07-14 17:39:35

From: RuneDragon
Can you please give the download link.


https://github.com/Brandon-T
Edit: YoHoJo beat me to it.

Zala

2012-07-14 17:40:16

From: Silent SPY
He gave you specific instructions.. In case you missed it:
http://villavu.com/forum/showpost.php?p=1069637&postcount=648


i tried adding ignorebar call at the end of setupsrl and i got an access violation. dunno if thats to do with updating stuff or what. doesnt matter

klamse

2012-07-14 17:41:46

From: Zala
i tried adding ignorebar call at the end of setupsrl and i got an access violation. dunno if thats to do with updating stuff or what. doesnt matter


Did you use correct syntax? i.e. IgnoreBar;

YoHoJo

2012-07-14 17:42:33

IgnoreBar;
Before SetupSRL;
I think.

RuneDragon

2012-07-14 17:43:49

From: klamse
https://github.com/Brandon-T
Edit: YoHoJo beat me to it.


I already cloned this. I get some error

Error: Exception: TMWindow.ReturnData: The parameters passed are wrong; xs,ys 0,0 width,height 766,553 at line 525


I will try official SRL now.

Leonardo Da Vinci

2012-07-14 17:44:30

From: Brandon
1. Open C:/Simba/SRL/Includes. Delete SRL.Simba. Delete SRL folder. Replace it with the stuff you downloaded.

2. Open a script. After SetupSRL. Add Ignorebar. Done. Now go figure out how to fix glitched items..

3. If you don't have the latest simba and smart and sps plugins well it's your job to find it on the forums. Simba 0.99 is the name of the thread.


I've downloaded, installed and updated Simba 0.99
What next? Simply delete what you've said to delete and replace it with what you've said to replace and that's it?

Where are these latest Smart and SPS plugins?
Maybe I'm really stupid… Or maybe it's just not easy to find what's needed to be found.

If we could get this all out in the open all in one post, it sure would stop a lot of arguing.

klamse

2012-07-14 17:47:19

From: Law and Justice
I've downloaded, installed and updated Simba 0.99
What next? Simply delete what you've said to delete and replace it with what you've said to replace and that's it?

Where are these latest Smart and SPS plugins?
Maybe I'm really stupid… Or maybe it's just not easy to find what's needed to be found.

If we could get this all out in the open all in one post, it sure would stop a lot of arguing.


The latest SPS plugins are on the same thread where you find Simba 0.99
Replace the Plugins folder where you installed Simba with the new Plugin folder.

Silent

2012-07-14 17:47:37

From: YoHoJo
IgnoreBar;
Before SetupSRL;
I think.


Actually, placing it before gets access violation.

Should be

SetupSRL;
IgnoreBar;

f1fanatic

2012-07-14 17:48:41

just wait for the official update

Master BAW

2012-07-14 17:52:53

From: Silent SPY
Actually, placing it before gets access violation.


hey, Maybe it's a little offtopic, but when I upgraded last week to simba 0.99 and smart 7.2 I got an acces violation too. Do you know what it basically means?

YoHoJo

2012-07-14 17:53:17

Used this just fine a few days ago:
egin
SRL_SixHourFix:=True;
IgnoreBar;
SetupSRL;

He might have changed it since then though idk.

Leonardo Da Vinci

2012-07-14 18:05:44

From: klamse
The latest SPS plugins are on the same thread where you find Simba 0.99
Replace the Plugins folder where you installed Simba with the new Plugin folder.


I thought that was the one, I just wasn't completely sure. Thank you.

Is this still the ObjectDTM I use for 0.99?
http://villavu.com/forum/showthread.php?t=68112

Silent

2012-07-14 18:05:53

From: YoHoJo
Used this just fine a few days ago:
egin
SRL_SixHourFix:=True;
IgnoreBar;
SetupSRL;

He might have changed it since then though idk.


What version of Simba are you on? I'm on .98, I think that might have something to do with it.

Edit: @ Law and Justice, ObjDTM has some problems with Simba .99, euphemism will probably fix it soon

Leonardo Da Vinci

2012-07-14 18:12:57

From: Silent SPY
What version of Simba are you on? I'm on .98, I think that might have something to do with it.

Edit: @ Law and Justice, ObjDTM has some problems with Simba .99, euphemism will probably fix it soon


Oh okay, awesome, thanks.

supersayian2224

2012-07-14 18:13:48

Okay, I've done my best trying to sort through all of this, haha. I tried Brandon's fix, but now I am getting

Exception in Script: Plugin(libsmartremote32) has not been found

It's not the libsmart32, but "libsmartremote32" … I tried the fix via forums, but that didn't work either. Anyone else having this problem?

Kyle Undefined

2012-07-14 18:16:25

From: supersayian2224
Okay, I've done my best trying to sort through all of this, haha. I tried Brandon's fix, but now I am getting

Exception in Script: Plugin(libsmartremote32) has not been found

It's not the libsmart32, but "libsmartremote32" … I tried the fix via forums, but that didn't work either. Anyone else having this problem?


Make sure you overwrite all your plugins and add the new ones from the Simba 0.99 thread. :)

aznninja501

2012-07-14 18:19:24

From: supersayian2224
Okay, I've done my best trying to sort through all of this, haha. I tried Brandon's fix, but now I am getting

Exception in Script: Plugin(libsmartremote32) has not been found

It's not the libsmart32, but "libsmartremote32" … I tried the fix via forums, but that didn't work either. Anyone else having this problem?


I have this same problem for Simba 0.99. Which is why I'm still on .98 right now. I downloaded the .zip and replacing the plugin folder from the original simba plugins folder with the one that was in the .zip file.

I didn't do an automatic update either.
Or were we supposed to do an update for the plugins after replacing the folder?


Also a suggestion, maybe open an organized thread that has the fix, but lock the thread so there wouldn't be any spam in it. It's kind of hard to navigate through nearly 30 pages in this thread. :/

supersayian2224

2012-07-14 18:25:30

Still a negative, kyle. I replaced the plugins.

Leonardo Da Vinci

2012-07-14 18:33:39

I get this error when I try to run any script:
[Error] C:\Users\****\Desktop\New folder\Simba\Includes\srl/srl.simba(119:1): 'BEGIN' expected at line 118
Compiling failed.

print

2012-07-14 18:43:35

omg when will it work =( i need to start botting my smithing can someon tell me how to set up new simba .99

Shino Iro

2012-07-14 19:06:25

From: supersayian2224
Okay, I've done my best trying to sort through all of this, haha. I tried Brandon's fix, but now I am getting

Exception in Script: Plugin(libsmartremote32) has not been found

It's not the libsmart32, but "libsmartremote32" … I tried the fix via forums, but that didn't work either. Anyone else having this problem?


Also having this problem, I have tried finding the .dll file somewhere to remotely add to plug-ins myself, but I can't seem to find it anywhere to add to the file. It would seem that it would be the only thing left to add so I could continue trying to fix it, since Simba .99 will refuse to run until that file is acquired.

damienjp

2012-07-14 19:07:00

From: print123
omg when will it work =( i need to start botting my smithing can someon tell me how to set up new simba .99


why not just legit or use another bot till then ? :o

edit. these smilies sukk

Leonardo Da Vinci

2012-07-14 19:13:46

From: print123
omg when will it work =( i need to start botting my smithing can someon tell me how to set up new simba .99


Chill, it will be out soon.
You can't rush perfection.

Austin

2012-07-14 19:28:49

I've replaced my plugins and have Simba 0.99 and everything, but when I try to start a script this comes up:

[Hint] C:\Simba\Includes\SRL/SRL/core/globals.simba(514:3): Variable 'BMP' never used at line 513
[Error] C:\Users\username\Downloads\GooglesFlawlessItemCrusherV3.9.simba.simba(764:3): Unknown identifier 'Smart_Server' at line 763
Compiling failed.


Can someone tell me what I did wrong?

Smart_Server := 10; is the highlighted text, should I change it to a different number?

Your help will be appreciated. Sorry if it's a stupid mistake, I hate when I and other people make those so please don't complain if it is :)

shstiger2009

2012-07-14 19:39:41

From: AustnW
I've replaced my plugins and have Simba 0.99 and everything, but when I try to start a script this comes up:



Can someone tell me what I did wrong?

Smart_Server := 10; is the highlighted text, should I change it to a different number?

Your help will be appreciated. Sorry if it's a stupid mistake, I hate when I and other people make those so please don't complain if it is :)


If you have the new Smart which it looks like you do, you don't need Smart Server and all that stuff. Delete it, and it'll probably tell you the same thing for the next couple of lines. Just delete those too.

Austin

2012-07-14 19:54:08

From: shstiger2009
If you have the new Smart which it looks like you do, you don't need Smart Server and all that stuff. Delete it, and it'll probably tell you the same thing for the next couple of lines. Just delete those too.

Hmm okay, I did that, now it comes up with this:

[Hint] C:\Simba\Includes\SRL/SRL/core/globals.simba(514:3): Variable 'BMP' never used at line 513
[Hint] C:\Users\username\Downloads\GooglesFlawlessItemCrusherV3.9.simba.simba(48:3): Variable 'R' never used at line 47
Compiled successfully in 483 ms.
SRL Compiled in 0 msec
*** Smart Cannot Spawn Clients ***
Successfully executed.


Is it maybe because the script isn't made to work with Simba 0.99? Maybe it needs Smart Server in it or something.

YoHoJo

2012-07-14 19:58:18

^Try run as admin, I never had to do it before .99 and SMART 7.2 (or whatever) but now I normally need to.

ThatGuy727

2012-07-14 20:09:00

i have downloaded the newest plugins and simba 0.99 but when i runa script, the smart tab opens and says this

[Error] C:\Simba\Includes\SRL/SRL/Misc/Smart.simba(53:19): Invalid number of parameters at line 52
Compiling failed.

I'm not sure what i did wrong here.

shstiger2009

2012-07-14 20:14:34

From: AustnW
Hmm okay, I did that, now it comes up with this:



Is it maybe because the script isn't made to work with Simba 0.99? Maybe it needs Smart Server in it or something.


It doesn't. This will work for you 100%-

Open a blank Simba. Then open your script and run. Enjoy.

WannaFanta

2012-07-14 20:16:19

I've gotten quite a few of these same errors. Bits and pieces of how to get everything running are all over this thread. I give up for now. I'll wait for an official update. Congrats to those who can currently bot.

Austin

2012-07-14 20:18:28

From: YoHoJo
^Try run as admin, I never had to do it before .99 and SMART 7.2 (or whatever) but now I normally need to.

Sorry for sounding like a noob, but how do you run as an admin? :p I hate asking questions that sound so simple lol

From: shstiger2009
It doesn't. This will work for you 100%-

Open a blank Simba. Then open your script and run. Enjoy.


Also no, it comes up with this when I do that:

[Hint] C:\Simba\Includes\SRL/SRL/core/globals.simba(514:3): Variable 'BMP' never used at line 513
[Hint] C:\Simba\Scripts\GooglesFlawlessItemCrusherV3.9.simba.simba(48:3): Variable 'R' never used at line 47
Compiled successfully in 499 ms.
SRL Compiled in 0 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Failed To Kill Client: 1284
Successfully executed.


Idk what the problem is

Sin

2012-07-14 20:21:49

Right Click –> Run As

Austin

2012-07-14 20:31:12

From: Shay
Right Click –> Run As

Oh..then if that's the case, I was already running it as an admin. This message still comes up:


[Hint] C:\Simba\Includes\SRL/SRL/core/globals.simba(514:3): Variable 'BMP' never used at line 513
[Hint] C:\Simba\Scripts\GooglesFlawlessItemCrusherV3.9.si mba.simba(48:3): Variable 'R' never used at line 47
Compiled successfully in 499 ms.
SRL Compiled in 0 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Failed To Kill Client: 1284
Successfully executed.

sickle

2012-07-14 20:44:08

From: ThatGuy727
i have downloaded the newest plugins and simba 0.99 but when i runa script, the smart tab opens and says this

[Error] C:\Simba\Includes\SRL/SRL/Misc/Smart.simba(53:19): Invalid number of parameters at line 52
Compiling failed.

I'm not sure what i did wrong here.



The same problem as ThatGuy above.
Got Simba.99, replaced plugins folder per instruction.

sacapuntas

2012-07-14 21:02:25

I installed simba .99, added ignorebar; after SetupSrl, and now when I run it it opens a new tab called smart, and brings an error that says

Invalid number of parameters at line 52 Compiling Failed.

print

2012-07-14 21:06:41

Running MSI…
Exception in Script: Plugin(irokiplugin32) has not been found



wtf what i doing wrong??????????????????????

YoHoJo

2012-07-14 21:08:06

From: print123
Running MSI…
Exception in Script: Plugin(irokiplugin32) has not been found



wtf what i doing wrong??????????????????????


Read the FAQ thread.

To everyone else, just wait for an official fix.

klamse

2012-07-14 21:58:07

Are the devs making any progress? How long until the official fix?

Austin

2012-07-14 22:00:41

Ah, Ok. Guess I'll just have to wait :p. One more question: do you need SMART 7.2 for the quick fix to work? I'm using 6.9 atm

YoHoJo

2012-07-14 22:10:48

From: klamse
Are the devs making any progress? How long until the official fix?


Read the first post.
Don't spam.
Wait patiently.

Leonardo Da Vinci

2012-07-14 23:38:18

Anyone else getting this?
[Error] C:\Users\****\Desktop\New folder\Simba\Includes\srl/srl.simba(119:1): 'BEGIN' expected at line 118
Compiling failed.

ThatGuy727

2012-07-14 23:40:23

no im getting this in my srl^

[Error] C:\Simba\Includes\SRL/SRL.simba(86:19): Unknown identifier 'SetupSmart' at line 85

shanghai88

2012-07-14 23:58:22

Hi all

Just want to confirm that the "Ghetto" Fix by Artist formally known as Ggzz Does indeed work!

I know to experienced pascal coders here it's initiate, however for rest of us noobs we have an extreme problem in establishing "HOW TO for Dummies" communication with the PROs here.

Here are how to Ghetto patch your simba for dummies (like me).

***RENAME YOUR C:\SIMBA Folder to SIMBA2 or FML(BACKUP IT UP!!)****

1. Install Simba 0.99
A) READ OP! http://villavu.com/forum/showthread.php?t=85725&highlight=sqlite
B) Download Simba Installer (recommended): http://nala.villavu.com/downloads/ma...i386win32.exe (install)
C) Download New plugins (zip or tar.bz2): https://github.com/MerlijnWajer/Simba/downloads (Make sure you don't let the SRL updater Extension override them… )
***put them in folder C:\Simba\Plugins (OVERWRITE ALL FILES)

2. A) Download https://github.com/Brandon-T/SRL-5/zipball/master
B) "Open C:\Simba\Includes\SRL
*Delete C:SRL.Simba*
*Delete SRL folder * Replace it with the stuff you downloaded."

3. **ALTERING SCRIPT** MINOR SKILL REQUIRED** SUPER Anti-leech**BACKUP ORIGINAL**!!
1. READ OP http://villavu.com/forum/showthread.php?t=84334
2. Find "Backwards Compatibility:" Apply as instructed (thanks Ggzz)
3. "Open a script. After SetupSRL; Add Ignorebar;

SetupSRL;
Ignorebar;

4***COMPILE and debug as needed.***

***RUN SIMBA AS ADMINISTRATOR!!!!**********
(open simba.exe—> than open script WITHIN SIMBA)

STEP 3 is the hardest, if you are a novice then start with a simple script!!

DTM aren't going to work well with deforming items try to use Fixed INV method when banking.

Good Luck!

Steingraber

2012-07-15 00:31:43

Where can I find globals.simba?

C:\Simba\????

YoHoJo

2012-07-15 00:34:50

From: Steingraber
Where can I find globals.simba?

C:\Simba\????


C:\Simba\Includes\SRL\srl\core
If you can't find that on your own/don't know how to use the search function on your computer, I highly suggest you just wait for an official release of a fix because that is the easiest 'step' if you can even consider it one… :]

ThatGuy727

2012-07-15 00:49:20

seemed to be working fine until this error

*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Error: Out Of Range at line 59
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap]

CoconutMangos

2012-07-15 00:49:47

I'm getting this problem

"Successfully saved: C:\Simba\Scripts\AutoTyper1.simba
[Hint] C:\Simba\Includes\SRL/SRL/core/globals.simba(514:3): Variable 'BMP' never used at line 513
Compiled successfully in 390 ms.
SRL Compiled in 16 msec
*** Smart Cannot Spawn Clients ***
Successfully executed.
"

sickle

2012-07-15 00:51:10

From: shanghai88
Hi all

Just want to confirm that the "Ghetto" Fix by Artist formally known as Ggzz Does indeed work!

I know to experienced pascal coders here it's initiate, however for rest of us noobs we have an extreme problem in establishing "HOW TO for Dummies" communication with the PROs here.

Here are how to Ghetto patch your simba for dummies (like me).

***RENAME YOUR C:\SIMBA Folder to SIMBA2 or FML(BACKUP IT UP!!)****

1. Install Simba 0.99
A) READ OP! http://villavu.com/forum/showthread.php?t=85725&highlight=sqlite
B) Download Simba Installer (recommended): http://nala.villavu.com/downloads/ma...i386win32.exe (install)
C) Download New plugins (zip or tar.bz2): https://github.com/MerlijnWajer/Simba/downloads (Make sure you don't let the SRL updater Extension override them… )
***put them in folder C:\Simba\Plugins (OVERWRITE ALL FILES)

2. A) Download https://github.com/Brandon-T/SRL-5/zipball/master
B) "Open C:\Simba\Includes\SRL
*Delete C:SRL.Simba*
*Delete SRL folder * Replace it with the stuff you downloaded."

3. **ALTERING SCRIPT** MINOR SKILL REQUIRED** SUPER Anti-leech**BACKUP ORIGINAL**!!
1. READ OP http://villavu.com/forum/showthread.php?t=84334
2. Find "Backwards Compatibility:" Apply as instructed (thanks Ggzz)
3. "Open a script. After SetupSRL; Add Ignorebar;

SetupSRL;
Ignorebar;

4***COMPILE and debug as needed.***

STEP 3 is the hardest, if you are a novice then start with a simple script!!

DTM aren't going to work well with deforming items try to use Fixed INV method when banking.

Good Luck!



I know Yohojo said be patient and wait for a new release, but I am trying to learn by doing all these things people say on the forum. I have been monitoring the thread since he made it, and I read every single post! lol someday I will understand what people talk about (except pointless raging)

Anyways, so I think I followed all the suggestions, got the script to compile, but SMART won't load, saying:

Please Wait.. Smart Is Currently Loading..


Minutes after, the script terminates saying that RS is not ready.

p.s. Using Narcle's fast fighter.
http://villavu.com/forum/showthread.php?t=20110

shanghai88

2012-07-15 00:59:03

From: CoconutMangos
I'm getting this problem

"Successfully saved: C:\Simba\Scripts\AutoTyper1.simba
[Hint] C:\Simba\Includes\SRL/SRL/core/globals.simba(514:3): Variable 'BMP' never used at line 513
Compiled successfully in 390 ms.
SRL Compiled in 16 msec
*** Smart Cannot Spawn Clients ***
Successfully executed.
"


Run simba as administrator

sickle

2012-07-15 01:01:51

From: shanghai88
Run simba as administrator


Sorry I should've clarified. I'm running it on my Mac with Wine. Don't think there is an option to do that (I think it runs as administrator by default)

CoconutMangos

2012-07-15 01:10:09

From: sickle
Sorry I should've clarified. I'm running it on my Mac with Wine. Don't think there is an option to do that (I think it runs as administrator by default)


Thanks, fixed it …

now this comes up

SRL Compiled in 15 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Failed To Kill Client: 10824
Successfully executed.

Silent

2012-07-15 01:10:25

From: sickle
Sorry I should've clarified. I'm running it on my Mac with Wine. Don't think there is an option to do that (I think it runs as administrator by default)


If you are using WINE I believe there are configuration settings for each individual app? Run it as a win 7? I think and as admin. I believe those are options but it has been a while since I've messed with WINE.

shanghai88

2012-07-15 01:25:46

From: CoconutMangos
Thanks, fixed it …

now this comes up

SRL Compiled in 15 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Failed To Kill Client: 10824
Successfully executed.


Step 3
Backwards Compatibility: isn't done correctly, simplest way is to replace all the {$….} command in the beginning using(below), if it still doesn't work try another script.

Backwards Compatibility:

{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

Find parts of the script with GREY TEXT BELOW add BLUE

begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
[COLOR="Red"] Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

SetupSRL;
end.

Brandon

2012-07-15 01:28:59

Congrats to Shanghai on a good tutorial.

For those with the spawn clients problem. I already told ben that it's cuz on windows the file is never created unless ran as administrator multiple times. To fix it you basically have to compile smart yourself with OPEN_ALWAYS for the remote pair parameters. That's not easy to do if you've never had experience with compiling stuff.

Thus your only solution is to run as admin and keep pressing play. It'll eventually spawn. Good job on the tut though.

sickle

2012-07-15 01:40:30

From: Silent SPY
If you are using WINE I believe there are configuration settings for each individual app? Run it as a win 7? I think and as admin. I believe those are options but it has been a while since I've messed with WINE.


According to my search, I believe that you do it by setting it up on winecfg.exe. I changed to Windows 7. As far as I know there is no way to make it run as admin, but this should take care of it.

In the end, SMART still doesn't load. Hmm.

CoconutMangos

2012-07-15 01:41:02

This is my script right now

program AutoTyperSmart;
{$DEFINE SMART}\\*
{$I SRL/SRL.Simba}\\*
{$IFDEF SIMBAMAJOR980}\\*
{$I SRL/SRL/Misc/PaintSmart.Simba}\\*
{$ELSE}\\*
{$I SRL/SRL/Misc/SmartGraphics.Simba}\\*
{$ENDIF}\\*


Const
World = 1;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := ''; //
Players[0].Pass := ''; //
Players[0].Nick := '';
Players[0].Member := False;
Players[0].Active := True;
Players[0].Pin := '';
Players[0].WorldInfo := [False, World];
end;

begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}\\*
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}\\*
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}\\*
{$ENDIF}\\*
SetupSRL;
Ignorebar;
DeclarePlayers;
LoginPlayer;
repeat
wait(1+random(1));
TypeSendEx('',true)
until(false)
if not (LoggedIn) then
LoginPlayer;
end.

"Exception in Script: Define not closed"
I think i misinterpreted your instructions

iiNveRsioN

2012-07-15 02:01:21

I followed Shanghai's instructions but I'm getting this..

[Hint] D:\Installed Programs\Simba\Includes\SRL/SRL/core/globals.simba(514:3): Variable 'BMP' never used at line 513
[Error] D:\Installed Programs\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40
Compiling failed.

Perhaps I missed something?

Silent

2012-07-15 02:12:27

From: CoconutMangos

"Exception in Script: Define not closed"
I think i misinterpreted your instructions


You're syntax is wrong at the top. Also use
 tags.

[SIMBA]program AutoTyperSmart;
{$DEFINE SMART}
{$I SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/Misc/SmartGraphics.Simba}
{$ENDIF}


Const
World = 1;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := ''; //
Players[0].Pass := ''; //
Players[0].Nick := '';
Players[0].Member := False;
Players[0].Active := True;
Players[0].Pin := '';
Players[0].WorldInfo := [False, World];
end;

begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
SetupSRL;
Ignorebar;
DeclarePlayers;
LoginPlayer;
repeat
wait(1+random(1));
TypeSendEx('',true)
until(false)
if not (LoggedIn) then
LoginPlayer;
end.

Gets it up for me, but it won't log me in, says something about Runescape not being ready, but I just started messing with Simba 99 so I probably have some settings wrong or mis-configured Brandon's files.

CoconutMangos

2012-07-15 02:32:49

From: Silent SPY

Gets it up for me, but it won't log me in, says something about Runescape not being ready, but I just started messing with Simba 99 so I probably have some settings wrong or mis-configured Brandon's files.


What changes would I have to make if my SRL.simba was in srl/srl.simba?
Sorry I'm a noob but really want to figure this out

Shino Iro

2012-07-15 02:35:57

I am also trying to learn coding here so I can get better at it, and this is what I have down so far.

program PreemptibleRuneSpan;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

SetupSRL;
end.


My only error still so far is still that god forsaken:
Exception in Script: Plugin(libsmartremote32) has not been found

Where can I find this god damned file so i can put it in plug-ins and get this torment over with? I have deleted and redownloaded Simba .99 and all of the plug-ins, including Brandon's fix, and it STILL tells me that I'm missing that stupid file. Can someone please help me here?

Leonardo Da Vinci

2012-07-15 02:36:20

Okay, I know we keep getting told to wait for an official update… But does anyone have any slight indication of a guess-timate when that will be?
Not to rush or anything, but just so we can get an idea…

Silent

2012-07-15 02:39:52

From: Law and Justice
Okay, I know we keep getting told to wait for an official update… But does anyone have any slight indication of a guess-timate when that will be?
Not to rush or anything, but just so we can get an idea…


Probably when Wizzup? adds a function into Simba. I think that's the fix the masses have chosen to go with. Could be anytime.

EDIT:

@CoconutMangos

I don't really get what you are asking. Did you get an error of some sort?

@Shino Iro
I'm finding that to be tricky too. I installed 99, updated SRL and plugins with defaults from the extension manager, then overrode all the files with the ones from Wizzup? and Brandon. Seemed to make it find that file for me.

Shino Iro

2012-07-15 02:44:57

From: Silent SPY

@Shino Iro
I'm finding that to be tricky too. I installed 99, updated SRL and plugins with defaults from the extension manager, then overrode all the files with the ones from Wizzup? and Brandon. Seemed to make it find that file for me.


Where might I find the ones from Wizzup? I did the updates through default with Simba first, then uploaded the ones from brandon into my plug-ins folder after deleting the srl.simba and srl folder, the only one I haven't done is the one from Wizzup?. Might I find those files in this warzone of a thread or is it somewhere else on the forum?

Leonardo Da Vinci

2012-07-15 02:45:16

From: Silent SPY
Probably when Wizzup? adds a function into Simba. I think that's the fix the masses have chosen to go with. Could be anytime.


Damn. I was hoping you wouldn't say that.

MaxPower

2012-07-15 02:46:06

From: Shino Iro
I am also trying to learn coding here so I can get better at it, and this is what I have down so far.

program PreemptibleRuneSpan;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

SetupSRL;
end.


My only error still so far is still that god forsaken:
Exception in Script: Plugin(libsmartremote32) has not been found

Where can I find this god damned file so i can put it in plug-ins and get this torment over with? I have deleted and redownloaded Simba .99 and all of the plug-ins, including Brandon's fix, and it STILL tells me that I'm missing that stupid file. Can someone please help me here?


Redownload and install the plugins from http://villavu.com/forum/showthread.php?t=85725 . That file is definitely there.

I got everything working myself and then ran into the error talked about in this post: http://villavu.com/forum/showpost.php?p=1066177&postcount=63 and now my scripts won't run at all, so I'm pretty sure we have to wait for the update to be released.

CoconutMangos

2012-07-15 02:51:31

Yeah, my SRL.simba is in a diffiferent folders than yours and when I try to edit it it gives me the same error message.

{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

But yours is

{$DEFINE SMART}
{$I SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

And it says "SRL.Simba not found in …"
So I need to change the folder within the script

Shino Iro

2012-07-15 02:51:56

From: MaxPower
Redownload and install the plugins from http://villavu.com/forum/showthread.php?t=85725 . That file is definitely there.


I've done that 3 times now, and it hasn't been in there each time. Is it a part of the Simba .99 download itself or is it in the plug-in download? I can try looking through each one, but I doubt I will find it seeing how many times I've tried it already.

EDIT:

Just did a full search of the plug-in download on Wizzup?'s page on .99 and i found nothing labeled 'libsmartremote32', which means either my computer is fucking with me or the file isn't there. Both are completely viable reasons seeing as my laptop is a piece of shit.

YoHoJo

2012-07-15 03:01:55

Go to wizzups profile, find all threads started by him, you'll know based on te title.
Do same for benland and SMART 7.2

Shino Iro

2012-07-15 03:08:19

From: YoHoJo
Go to wizzups profile, find all threads started by him, you'll know based on te title.
Do same for benland and SMART 7.2


What will I be looking for? Do I need to download Smart 7.2 or will there be a thread that will have something to do with libsmartremote32?

I'm sorry for my probably obviously stupid questions, I'm just relatively new to the whole Simba thing and have yet to get it working since I've chosen the most conveniently wrong time to start using it (That is, if you have no idea how to code even the most simple strings, which I don't.) So I'm just taking baby steps here in finding the solution and getting it to work with lots of help from the forums.

Silent

2012-07-15 03:19:48

From: Shino Iro
What will I be looking for? Do I need to download Smart 7.2 or will there be a thread that will have something to do with libsmartremote32?

I'm sorry for my probably obviously stupid questions, I'm just relatively new to the whole Simba thing and have yet to get it working since I've chosen the most conveniently wrong time to start using it (That is, if you have no idea how to code even the most simple strings, which I don't.) So I'm just taking baby steps here in finding the solution and getting it to work with lots of help from the forums.


There really isn't a good solution atm… Just so you are aware. At least non that I have gotten working.

I thought Smart 7.2 was included in the plugins folder for Simba 99 but I could be wrong. If that's the case, look over in the SMART section for the thread by BenLand100 on SMART 7.2, it has download links.

Shino Iro

2012-07-15 03:22:57

From: Silent SPY
There really isn't a good solution atm… Just so you are aware. At least non that I have gotten working.

I thought Smart 7.2 was included in the plugins folder for Simba 99 but I could be wrong. If that's the case, look over in the SMART section for the thread by BenLand100 on SMART 7.2, it has download links.


Thank you so much! Finally found the file. Sorry YoHoJo, I didn't understand what you were trying to say, even though you made it blatantly obvious. My apologies for being stupid, that's what I get for attempting this while drunk.

EDIT:

Okay, now that I have THAT all figured out, I now have the issue that everyone else is having, which is 'C:\Simba\Includes\SRL/SRL/core/globals.simba(514:3): Variable 'BMP' never used at line 513'

I'd rather not have to go through this 30 page pile of crap thread (no offence, YoHoJo), but if that's what I have to do to find the solution to this, I guess it's what I shall do.

John

2012-07-15 03:23:23

From: Shino Iro
I've done that 3 times now, and it hasn't been in there each time. Is it a part of the Simba .99 download itself or is it in the plug-in download? I can try looking through each one, but I doubt I will find it seeing how many times I've tried it already.

EDIT:

Just did a full search of the plug-in download on Wizzup?'s page on .99 and i found nothing labeled 'libsmartremote32', which means either my computer is fucking with me or the file isn't there. Both are completely viable reasons seeing as my laptop is a piece of shit.

You didn't disable the automatic updater in Settings -_-

Shino Iro

2012-07-15 03:38:36

So I've found the line in globals from C:\Simba\Includes\SRL/SRL/core/globals.simba that has the unused BMP, except it's on a completely different line. So what do I do with this unused BMP; do I just delete the entire line and compile or is there something specific I'm supposed to do?

VastlySuperior

2012-07-15 04:18:12

I would like to make a suggestion to the moderators of the forum.

I was following this thread from the moment it started to find a solution to the problem we are facing at the moment, and after seeing how it all wend sideways, I feel that such discussions should be regulated to the people who actually has the authority to change the code in the github. That will make it impossible for people to clutter up a thread that was created to communicate what was being done to find a solution to the problem.

I know that because this is open source, you would also like to keep what is being done transparent to keep the members in the loop of what is happening, but the negative connotation to this thread and to the people who are actually making a difference is not exceptable. So let it be seen what is done but not commented on by those who don`t have the knowledge. In this way they will see it is worked on and they can follow what to do without bringing it all down in negative remarks an clutter.

We ALL would like to be able to use the scripts at the moment, me included. But not everyone of us has the knowledge to make it work. Yes, it is very frustrating, to be sure, but it is being worked on, there will be a time when a update that works correctly will be release. We just have to be patient.

The other thing I would really like to bring under the attention of the coders that knows what they are doing, is this, be patient with noobs. You think out of a mindset that has the background and the understanding of what is happening. For noobs to follow along it needs to be broken down into simple steps that can be followed by them as well.

It might sound like feeding a baby, but actually that is precisely what you must do with someone who does not have the knowledge. They are babes. They don`t have instant knowledge. Rome was not build within one day, it took time to become a mighty empire. A great programmer is not made in one day, it takes time.

So forgive the babes for their rudeness and their crying, it`s what babes do. Just brake everything down into smaller understandable food for them so that they can feel that they are being cared for, that someone is actually taking time to walk them through the process.

Make instructions simpler and more understandable, then everyone will be able to follow along.

Look at shanghai88 post #705. It`s easy to follow what to do. Everything is confusing for those that don`t have the greatest understanding of what to do. It took just a few minutes to make without the name calling.

Be mature emotionally.

Brandon, Thanks for all you do it is appreciated, and those that can code knows that it is because of your work and effort that they are able to do something now. Those who are in the know, knows what you have given them and they are thankful and appreciative of it. Don`t look for reward from noobs, they don`t understand the time and commitment it took you to do this, for FREE.

Thanks to everyone who has made all this possible for us to use.

Wikkedninja

2012-07-15 04:20:41

any idea on when the actual SMART wide fix will come in or at Least a Good Hard Fix

lol someone posted above me where hard fix is thank you very much ill get right on that

djborec

2012-07-15 04:51:22

Well I actually like that SMART is outdated ,because leechers can not farm gold with public scripts. And the price of items is rising. SoI hope it will stay outdated for longer. If they can not fix it themselves then they should not gold farm with SIMBA…

creedgaming

2012-07-15 04:54:24

From: djborec
Well I actually like that SMART is outdated ,because leechers can not farm gold with public scripts. And the price of items is rising. SoI hope it will stay outdated for longer. If they can not fix it themselves then they should not gold farm with SIMBA…


Item prices will drop even without bots…. Things become inflated….

djborec

2012-07-15 05:08:53

From: creedgaming
Item prices will drop even without bots…. Things become inflated….


No, items pricing will only raise once bot nuke comes.. its nothing to do with inflation its just simply offer and demand…

iiNveRsioN

2012-07-15 06:03:37

Seems like I am always getting this error now .. I have tried to apply the fix to three different scripts and always the same error:



[Hint] D:\Installed Programs\Simba\Includes\SRL/SRL/core/globals.simba(514:3): Variable 'BMP' never used at line 513
Compiled successfully in 249 ms.
SRL Compiled in 0 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Error: Out Of Range at line 59
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap]

Austin

2012-07-15 07:59:35

From: VastlySuperior
I would like to make a suggestion to the moderators of the forum.

I was following this thread from the moment it started to find a solution to the problem we are facing at the moment, and after seeing how it all wend sideways, I feel that such discussions should be regulated to the people who actually has the authority to change the code in the github. That will make it impossible for people to clutter up a thread that was created to communicate what was being done to find a solution to the problem.

I know that because this is open source, you would also like to keep what is being done transparent to keep the members in the loop of what is happening, but the negative connotation to this thread and to the people who are actually making a difference is not exceptable. So let it be seen what is done but not commented on by those who don`t have the knowledge. In this way they will see it is worked on and they can follow what to do without bringing it all down in negative remarks an clutter.

We ALL would like to be able to use the scripts at the moment, me included. But not everyone of us has the knowledge to make it work. Yes, it is very frustrating, to be sure, but it is being worked on, there will be a time when a update that works correctly will be release. We just have to be patient.

The other thing I would really like to bring under the attention of the coders that knows what they are doing, is this, be patient with noobs. You think out of a mindset that has the background and the understanding of what is happening. For noobs to follow along it needs to be broken down into simple steps that can be followed by them as well.

It might sound like feeding a baby, but actually that is precisely what you must do with someone who does not have the knowledge. They are babes. They don`t have instant knowledge. Rome was not build within one day, it took time to become a mighty empire. A great programmer is not made in one day, it takes time.

So forgive the babes for their rudeness and their crying, it`s what babes do. Just brake everything down into smaller understandable food for them so that they can feel that they are being cared for, that someone is actually taking time to walk them through the process.

Make instructions simpler and more understandable, then everyone will be able to follow along.

Look at shanghai88 post #705. It`s easy to follow what to do. Everything is confusing for those that don`t have the greatest understanding of what to do. It took just a few minutes to make without the name calling.

Be mature emotionally.

Brandon, Thanks for all you do it is appreciated, and those that can code knows that it is because of your work and effort that they are able to do something now. Those who are in the know, knows what you have given them and they are thankful and appreciative of it. Don`t look for reward from noobs, they don`t understand the time and commitment it took you to do this, for FREE.

Thanks to everyone who has made all this possible for us to use.

I agree with the latter part of your post, but the reason that this thread was made in the first place was to stop the opening of countless others about the problem. If this thread wasn't opened there might literally be 100s of others about the same problem or different stages of it. So even though there might be raging and spamming on this thread right now, it was the best thing to do. :)

Also….100th post!! ;)

bricks

2012-07-15 08:09:28

From: VastlySuperior

It might sound like feeding a baby, but actually that is precisely what you must do with someone who does not have the knowledge. They are babes. They don`t have instant knowledge.Rome was not build within one day, it took time to become a mighty empire. A great programmer is not made in one day, it takes time.

You're simply explaining the perspectives of the noobs, compared to the knowledgeable developers, by using overly complex grammar and wording…probably confuses the staff more than giving them in sight into what you're saying. Also, build is suppose to be built, and to be quite frank Rome was an empire built off of a lust for world domination, in turn it became so corrupt that it collapsed due to the greed of the elite in their government. I think you need to stop trying to write novels and leading people on with senseless paragraphs explaining what we already know, just in different words, and take another look into history because if we don't recognize it, it is bound to reoccur.

Shino Iro

2012-07-15 11:55:22

From: bricks
You're simply explaining the perspectives of the noobs, compared to the knowledgeable developers, by using overly complex grammar and wording…probably confuses the staff more than giving them in sight into what you're saying. Also, build is suppose to be built, and to be quite frank Rome was an empire built off of a lust for world domination, in turn it became so corrupt that it collapsed due to the greed of the elite in their government. I think you need to stop trying to write novels and leading people on with senseless paragraphs explaining what we already know, just in different words, and take another look into history because if we don't recognize it, it is bound to reoccur.


Here we go again with someone derailing the point of this thread. Your post was entirely useless and will help no one whatsoever in the process of trying to accomplish this temporary fix.

Jos3ph

2012-07-15 12:08:36

From: Shino Iro
Here we go again with someone derailing the point of this thread. Your post was entirely useless and will help no one whatsoever in the process of trying to accomplish this temporary fix.


In a perfect world we'd not have to worry about this, but since we live in a world of flaws—you should expect responses like this…

I wish there wasn't so many people chimming on this thread, there are to many pages to read through and 70% of it isn't useful info so for the useful info it'll fall between the cracks.

At anyrate sounds like their have been some improvment and fixes that have been made thus far, so thats always a good thing.

bricks

2012-07-15 12:11:02

From: Shino Iro
Here we go again with someone derailing the point of this thread. Your post was entirely useless and will help no one whatsoever in the process of trying to accomplish this temporary fix.


Simply pointing out that the novel that person wrote in this post was un needed, as well as your response to my last post. And there is no derailing at this point because there is not even a conversation about a fix taking place in this thread at the moment. I was correcting someone, not derailing and already derailed topic that is being discussed mainly over IRC.

Shino Iro

2012-07-15 12:14:35

This thread HAS helped me a lot, I was able to get the info for Simba .99, Bradland100 and Brandon's fixes going, but now I'm to the point with the only error being in C:\Simba\Includes\SRL/SRL/core/globals.simba and the only solution I seem to have found so far is to just keep restarting Simba and pushing play to let it compile over and over again. It didn't exactly work for me last night but if it's the solution, I will keep trying to get it working.

Shino Iro

2012-07-15 12:19:09

From: bricks
Simply pointing out that the novel that person wrote in this post was un needed, as well as your response to my last post. And there is no derailing at this point because there is not even a conversation about a fix taking place in this thread at the moment. I was correcting someone, not derailing and already derailed topic that is being discussed mainly over IRC.


If the topic is being discussed in IRC, then why must you find the need to come here and be an asshole? Just go back to the IRC and continue doing whatever you were doing before, which didn't involve bothering any of us still trying to work on the problem here in the thread.

nathan lad

2012-07-15 12:35:23

From: VastlySuperior
I would like to make a suggestion to the moderators of the forum.

I was following this thread from the moment it started to find a solution to the problem we are facing at the moment, and after seeing how it all wend sideways, I feel that such discussions should be regulated to the people who actually has the authority to change the code in the github. That will make it impossible for people to clutter up a thread that was created to communicate what was being done to find a solution to the problem.

I know that because this is open source, you would also like to keep what is being done transparent to keep the members in the loop of what is happening, but the negative connotation to this thread and to the people who are actually making a difference is not exceptable. So let it be seen what is done but not commented on by those who don`t have the knowledge. In this way they will see it is worked on and they can follow what to do without bringing it all down in negative remarks an clutter.

We ALL would like to be able to use the scripts at the moment, me included. But not everyone of us has the knowledge to make it work. Yes, it is very frustrating, to be sure, but it is being worked on, there will be a time when a update that works correctly will be release. We just have to be patient.

The other thing I would really like to bring under the attention of the coders that knows what they are doing, is this, be patient with noobs. You think out of a mindset that has the background and the understanding of what is happening. For noobs to follow along it needs to be broken down into simple steps that can be followed by them as well.

It might sound like feeding a baby, but actually that is precisely what you must do with someone who does not have the knowledge. They are babes. They don`t have instant knowledge. Rome was not build within one day, it took time to become a mighty empire. A great programmer is not made in one day, it takes time.

So forgive the babes for their rudeness and their crying, it`s what babes do. Just brake everything down into smaller understandable food for them so that they can feel that they are being cared for, that someone is actually taking time to walk them through the process.

Make instructions simpler and more understandable, then everyone will be able to follow along.

Look at shanghai88 post #705. It`s easy to follow what to do. Everything is confusing for those that don`t have the greatest understanding of what to do. It took just a few minutes to make without the name calling.

Be mature emotionally.

Brandon, Thanks for all you do it is appreciated, and those that can code knows that it is because of your work and effort that they are able to do something now. Those who are in the know, knows what you have given them and they are thankful and appreciative of it. Don`t look for reward from noobs, they don`t understand the time and commitment it took you to do this, for FREE.

Thanks to everyone who has made all this possible for us to use.


Ever thought of makin ure point more succinct? :)

SeaBass

2012-07-15 13:08:31

Exception in Script: Unable to find file 'srl/srl.simba' used from ''
I tried out Brandon's suggestion and I keep getting this error :/
Sorry to leach but I was midway through writing one of my first scripts and then the social slayer update happened :(

Silent

2012-07-15 13:42:17

From: SeaBass
Exception in Script: Unable to find file 'srl/srl.simba' used from ''
I tried out Brandon's suggestion and I keep getting this error :/
Sorry to leach but I was midway through writing one of my first scripts and then the social slayer update happened :(


It means you pasted the SRL folder and include in the wrong place. Probably needs to be another level deep in the include folder.

@ everyone else. Stop the spamming, if you have problems related to any of this fixes that have been posted, that's fine as long as you read through what other people have suggested first. The reason the main conversation has shifted from this thread is because it is getting insane amounts of spam dumped in. Though I suppose we knew that would happen as it is also sort of the point of this thread, even though we didn't want it to be.

Edit: If a few people could test this function and post their results it would be great + suggestions on what to improve.
program SetBarHeight;
//{$DEFINE SMART}
{$DEFINE SRL5}
{$i srl/srl.simba}

function BarHeight: Integer;
var
x, y, yOff: Integer;
begin
MMouse(MSCX+ 30, MSY1, 0, 0);
//Writeln('moved mouse');
if (GetColor(MSCX, MSY1) = 4605254) then
begin
Writeln('found color of box on login screen');
yOff:= MSY1 + 3;
while (GetColor(MSCX + 30, yOff) = 0) do
begin
Inc(YOff);
MMouse(MSCX+ 30, yOff, 0, 0);
//Writeln('y offset is: ' + IntToStr(yOff - MSY1));
end;
Result:= yOff - MSY1 + 3;
Writeln('y offset is: ' + IntToStr(yOff - MSY1 + 3));
Exit;
end;

Writeln('must be at least part way past login screen');
while not (GetColor(MSCX + 30, yOff) = 11053481) do
begin
Inc(YOff);
MMouse(MSCX+ 30, yOff, 0, 0);
//Writeln('y offset is: ' + IntToStr(yOff - MSY1));
end;
Writeln('y offset is: ' + IntToStr(yOff - MSY1 + 3));
Result:= yOff - MSY1 + 3;
end;

begin
(*Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;*)
SetupSRL;
BarHeight;
end.

Run with browser applet targeted. The second part of it (designed for the bar not black space) doesn't seem to want to run when using SMART, no idea why.

Brandon

2012-07-15 15:33:12

K I just made everything a simple drag and drop.

1. Download Simba 0.99 from Wizzup's thread: http://nala.villavu.com/downloads/master/902397653ce75df9d6b726824196b4fdeba892c5/SimbaInstaller.i386-win32.exe

2. Copy Wizzup's plugins to C:/Simba/Plugins: https://github.com/downloads/MerlijnWajer/Simba/plugins.zip

3. Delete your includes folder.. Replace it with the temporary fix: https://github.com/Brandon-T/SRL-5/zipball/master

4. "IF" your script needs updating then read this: http://villavu.com/forum/showthread.php?t=84334

If you can't do that then Iunno what else to say. It's as simple as that. Now go try running a script. You shouldn't need to modify it if it's coded well.

This is just a temporary fix.. It's not official and never will be.

Nasus

2012-07-15 15:49:12

I cannot +1 you hard enough, Ggzz. You're one of the few guys who's really trying to help out the less-skilled on the forum (I've got enough background to know how to follow the first set of directions, but clearly many don't), and you've gone out of your way to make it simple just to be a nice guy.

Silent: Is there any specific fix you'd like me to try that miniscript with?

Silent

2012-07-15 15:51:40

From: Nasus
I cannot +1 you hard enough, Ggzz. You're one of the few guys who's really trying to help out the less-skilled on the forum (I've got enough background to know how to follow the first set of directions, but clearly many don't), and you've gone out of your way to make it simple just to be a nice guy.

Silent: Is there any specific fix you'd like me to try that miniscript with?


Run it on the browser version of RS, once at the login screen and once at the lobby screen, sorry I should have made that clear. Thanks :)

oh, and tell me the result it gives.

Edit: you might also need to use my version of SRL, because it has the old coords back from before the latest update.
https://github.com/Silent-SPY/SRL-5

print

2012-07-15 16:10:26

did all tha t and this came upp pomfggg

Exception in Script: Unable to find file 'srl/srl/misc/Smart.simba' used from

Nasus

2012-07-15 16:14:11

First time I've run Simba without using SMART, so I must be missing a step in making it all work (I've been quick-switching to Runescape window). Standard graphics, including Safe mode. Here's my current results:


BOTH log-in and lobby screens:

The mouse darts up to select the first tab in my browser, only it overshoots and heads right to the top of the screen. After that, it is dragged all the way to the bottom of my screen, and Simba prints the following:

must be at least part way past login screen

The while-not loop following that Writeln command also turns into an infinite loop. I've had to use task manager to close Simba, and had to tab between options at that.


My best guess is that I have some kind of configuration foul-up. Next best guess is that it's thrown off by screen resolution.

Le Jingle

2012-07-15 16:23:41

From: print123
did all tha t and this came upp pomfggg

Exception in Script: Unable to find file 'srl/srl/misc/Smart.simba' used from


You didn't update to 0.99 correctly (0.99 doesn't use Smart.simba), review Brandon's post, approx. 5 posts above this one.

Silent

2012-07-15 16:25:49

From: Nasus
First time I've run Simba without using SMART, so I must be missing a step in making it all work (I've been quick-switching to Runescape window). Standard graphics, including Safe mode. Here's my current results:


BOTH log-in and lobby screens:

The mouse darts up to select the first tab in my browser, only it overshoots and heads right to the top of the screen. After that, it is dragged all the way to the bottom of my screen, and Simba prints the following:

must be at least part way past login screen

The while-not loop following that Writeln command also turns into an infinite loop. I've had to use task manager to close Simba, and had to tab between options at that.


My best guess is that I have some kind of configuration foul-up. Next best guess is that it's thrown off by screen resolution.


Did you select the client window using the cross-hairs ?
You can use F2 as a command to kill the script.

dx osiris1

2012-07-15 16:35:14

From: Brandon
K I just made everything a simple drag and drop.

1. Download Simba 0.99 from Wizzup's thread: http://nala.villavu.com/downloads/master/902397653ce75df9d6b726824196b4fdeba892c5/SimbaInstaller.i386-win32.exe

2. Copy Wizzup's plugins to C:/Simba/Plugins: https://github.com/downloads/MerlijnWajer/Simba/plugins.zip

3. Delete your includes folder.. Replace it with the temporary fix: https://github.com/Brandon-T/SRL-5/zipball/master

4. "IF" your script needs updating then read this: http://villavu.com/forum/showthread.php?t=84334

If you can't do that then Iunno what else to say. It's as simple as that. Now go try running a script. You shouldn't need to modify it if it's coded well.

This is just a temporary fix.. It's not official and never will be.



ii was good until deleting includes. thanks you helped a lot gonna rep you.

Nasus

2012-07-15 16:46:42

Silent, I didn't get any crosshairs. I was using the old working Simba, pre-crash. I'll reload the backups and try again shortly.

EDIT: Yeah, no crosshairs.


Using a Brandon-fixed Simba (which I had to add an extra plugin from my backup folder, so if whatever irokiplugin is could be causing this new issue, well, there's the culprit!) I can't even get the script to run.

Error: Exception: Access violation at line 501

Specifically, this is the Globals, and that line matches up to this:

by Narcle

It's in the middle of a comment block, so I'm guessing I wasn't intended to try this with Brandon's fix at all; I just did it for completeness.

Sawyer

2012-07-15 16:51:49

Will this temporary fix allow msi to work?

Silent

2012-07-15 16:51:53

From: Nasus
Silent, I didn't get any crosshairs. I was using the old working Simba, pre-crash. I'll reload the backups and try again shortly.

EDIT: Yeah, no crosshairs.


Using a Brandon-fixed Simba (which I had to add an extra plugin from my backup folder, so if whatever irokiplugin is could be causing this new issue, well, there's the culprit!) I can't even get the script to run.

Error: Exception: Access violation at line 501

Specifically, this is the Globals, and that line matches up to this:

by Narcle

It's in the middle of a comment block, so I'm guessing I wasn't intended to try this with Brandon's fix at all; I just did it for completeness.


Try using with my git repo. Follow the same instructions for replacing it that Brandon gave. my repo.

Also, try running this updated version:

Drag the cross-hairs on to the RS Window. Its in the Simba tool bar.
program SetBarHeight;
//{$DEFINE SMART}
{$DEFINE SRL5}
{$i srl/srl.simba}

function BarHeight: Integer;
var
x, y, yOff, mX: Integer;
begin
mX:= MSCX + 30;
MMouse(MSCX+ 30, MSY1, 0, 0);
//Writeln('moved mouse');
if (GetColor(MSCX, MSY1) = 4605254) then
begin
Writeln('found color of box on login screen');
yOff:= MSY1 + 3;
while (GetColor(mX, yOff) = 0) do
begin
Inc(YOff);
MMouse(mX, yOff, 0, 0);
//Writeln('y offset is: ' + IntToStr(yOff - MSY1));
end;
Result:= yOff - MSY1 + 3;
Writeln('y offset is: ' + IntToStr(yOff - MSY1 + 3));
Exit;
end;

Writeln('Assuming we are past initial login.');
Writeln('trying to determine nav bar offset at lobby screen');
while not (FindColorTolerance(mX, yOff, 11119274, mX, yOff, mX, yOff, 2)) do
begin
Inc(YOff);
MMouse(mX, yOff, 0, 0);
//Writeln('y offset is: ' + IntToStr(yOff - MSY1));
end;
Writeln('y offset is: ' + IntToStr(yOff - MSY1 + 3));
Result:= yOff - MSY1 + 3;
end;

begin
(*Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;*)
SetupSRL;
BarHeight;
end.

Nasus

2012-07-15 17:11:34

Well, glad to have been able to sort things out on IRC, and really happy to know your methods work. Now it's time to bugfix Brandon's methods, since I forgot to back up my old Brandon-Simba install before I started messing around with everything, and botched it up good.

If anybody needs a tester, I'm in IRC and will be checking in every few minutes. I'm willing and able.

Blackfang

2012-07-15 17:16:15

From: Nasus
Well, glad to have been able to sort things out on IRC, and really happy to know your methods work. Now it's time to bugfix Brandon's methods, since I forgot to back up my old Brandon-Simba install before I started messing around with everything, and botched it up good.

If anybody needs a tester, I'm in IRC and will be checking in every few minutes. I'm willing and able.


Yay, League of Legends.

That said, I have nothing of worth to contribute to this topic.

Shatterhand

2012-07-15 17:21:10

From: Brandon
K I just made everything a simple drag and drop.

1. Download Simba 0.99 from Wizzup's thread: http://nala.villavu.com/downloads/master/902397653ce75df9d6b726824196b4fdeba892c5/SimbaInstaller.i386-win32.exe

2. Copy Wizzup's plugins to C:/Simba/Plugins: https://github.com/downloads/MerlijnWajer/Simba/plugins.zip

3. Delete your includes folder.. Replace it with the temporary fix: https://github.com/Brandon-T/SRL-5/zipball/master

4. "IF" your script needs updating then read this: http://villavu.com/forum/showthread.php?t=84334

If you can't do that then Iunno what else to say. It's as simple as that. Now go try running a script. You shouldn't need to modify it if it's coded well.

This is just a temporary fix.. It's not official and never will be.

Not working for me.
Installed 0.99. Disabled auto updating.
Deleted includes and plugins.
Copied includes and plugins, everything.
My test script is:
program Test;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

begin
SRL_SixHourFix := True;
Smart_FixSpeed := True;
SetupSRL;
end.
Output is:
Compiled successfully in 577 ms.
SRL Compiled in 15 msec
*** Smart Cannot Spawn Clients ***
Successfully executed.

Silent

2012-07-15 17:23:40

From: Shatterhand
Not working for me.
Installed 0.99. Disabled auto updating.
Deleted includes and plugins.
Copied includes and plugins, everything.
My test script is:
program Test;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

begin
SRL_SixHourFix := True;
Smart_FixSpeed := True;
SetupSRL;
end.
Output is:
Compiled successfully in 577 ms.
SRL Compiled in 15 msec
*** Smart Cannot Spawn Clients ***
Successfully executed.


Running as admin?

shanghai88

2012-07-15 17:25:13

From: Shatterhand
Not working for me.
Installed 0.99. Disabled auto updating.
Deleted includes and plugins.
Copied includes and plugins, everything.
My test script is:
program Test;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

begin
SRL_SixHourFix := True;
Smart_FixSpeed := True;
SetupSRL;
end.
Output is:
Compiled successfully in 577 ms.
SRL Compiled in 15 msec
*** Smart Cannot Spawn Clients ***
Successfully executed.


Run as Administrator

Le Jingle

2012-07-15 17:26:11

From: Silent SPY
Running as admin?


This; on the Smart 7.1 thread (iirc - 7.1 or 7.2 :s) it's suggested to incorporate EIOS support, in which running Simba as admin isn't required. At least that's what I understood from reading over the threads.

Kyle Undefined

2012-07-15 17:26:47

Cool work ggzz! This will help for now :)

supersayian2224

2012-07-15 17:30:28

From: Shatterhand
Not working for me.
Installed 0.99. Disabled auto updating.
Deleted includes and plugins.
Copied includes and plugins, everything.
My test script is:
program Test;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

begin
SRL_SixHourFix := True;
Smart_FixSpeed := True;
SetupSRL;
end.
Output is:
Compiled successfully in 577 ms.
SRL Compiled in 15 msec
*** Smart Cannot Spawn Clients ***
Successfully executed.


i followed that as well and got :

[Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40

Silent

2012-07-15 17:34:23

From: Kyle Undefined
Cool work ggzz! This will help for now :)


Kyle, you should probably undo the commit with the constants changed. As they aren't really helping and just throwing off development of better solutions.

I thought all the constants were in that one file, which I was horribly mistaken on. So until we can get it fixed…. Might as well not have it IMHO, but that's up to you.

Kyle Undefined

2012-07-15 17:40:42

I'm not home right now. Send in a pull request and I can merge it from my phone.

xx2kyle2xx

2012-07-15 17:48:39

My smart loads and everything just i cant click anything, when it trys to login it clicks just above the username bar. How should I fix this? just started after the rs update

iiNveRsioN

2012-07-15 17:52:42

Am I the only one getting this error? I am using the same basic test script as a few posts up.


program Test;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

begin
SRL_SixHourFix := True;
Smart_FixSpeed := True;
SetupSRL;
end.


Output:


Compiled successfully in 234 ms.
SRL Compiled in 0 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Failed To Kill Client: 2272
Successfully executed.

Shatterhand

2012-07-15 17:59:32

^ I get the same after running Simba as admin.

supersayian2224

2012-07-15 18:03:43

is anyone getting
[Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40

Jos3ph

2012-07-15 18:04:42

From: Shatterhand
^ I get the same after running Simba as admin.


I get the same error I'm not sure what I'm doing wrong,

Grihmm

2012-07-15 18:09:38

Browser I think. I think SMART is out of commission atm.

iiNveRsioN

2012-07-15 18:25:26

From: supersayian2224
is anyone getting
[Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40


You need to do the compatibility fix.

See here:

http://villavu.com/forum/showthread.php?t=84334

Brandon

2012-07-15 19:05:24

Everyone give me a minute.. I just got home. I'll write you guys a very detailed solution on fixing paired clients/compiling smart. I'll post the link here when I'm done.

supersayian2224

2012-07-15 19:10:56

From: iiNveRsioN
You need to do the compatibility fix.

See here:

http://villavu.com/forum/showthread.php?t=84334


Okay, I went to the http://villavu.com/forum/showthread.php?t=84789

but it seems very … unhelpful. I've never tried updating SMART before :redface:

white_lycan

2012-07-15 19:11:19

I WAS ABLE TO get smart loading and my script kinda sorta updated but i don't know what srl stuff works and what doesn't. so i think i MIGHT just wait till some one has this 100%.

iiNveRsioN

2012-07-15 19:36:59

From: Brandon
Everyone give me a minute.. I just got home. I'll write you guys a very detailed solution on fixing paired clients/compiling smart. I'll post the link here when I'm done.


Thank you in advance.

From: supersayian2224
Okay, I went to the http://villavu.com/forum/showthread.php?t=84789

but it seems very … unhelpful. I've never tried updating SMART before :redface:



Basically at the top of your script you want to have this instead of whatever is there at the moment:


{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

And then do a ctrl+f search and find "smart_server", typically gonna be near the bottom of the script.

Change that section so it looks like this:



begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

SetupSRL;
IgnoreBar;
end.

Brandon

2012-07-15 19:41:28

The tutorial I said would be noob friendly for making your own plugins.. This is for the people who get Paired Client error:
http://villavu.com/forum/showthread.php?t=86387

For those getting SmartDebugDC, you need to follow the guide here: http://villavu.com/forum/showthread.php?t=84334

To update your script. If you don't want to follow the guide you can try a Beta script updater: http://villavu.com/forum/showpost.php?p=1066051&postcount=52

It may or may not work. It should update your scripts for you. Hopefully.. else just follow the guide. I'd say follow the guide and try to learn.

iiNveRsioN

2012-07-15 19:41:45

delete dp

Jos3ph

2012-07-15 19:42:25

I been getting;


Exception in Script: Plugin(irokiplugin32) has not been found

Any help be great

Brandon

2012-07-15 19:43:54

From: po2n star
I been getting;


Exception in Script: Plugin(irokiplugin32) has not been found

Any help be great


Reinstall Simba. Irokiplugin comes with Simba. Next time just copy all the downloaded plugins into your folder rather than replacing it.

Jos3ph

2012-07-15 19:44:57

From: Brandon
Reinstall Simba. Irokiplugin comes with Simba. Next time just copy all the downloaded plugins into your folder rather than replacing it.


Ok so I'll re-download Simba; ok got cha. lemme try it

Move the files & keep both, or move and over-ride?

Brandon

2012-07-15 19:50:24

From: po2n star
Ok so I'll re-download Simba; ok got cha. lemme try it

Move the files & keep both, or move and over-ride?


Your plugins folder should look like:


And your includes folder should look like:


It doesn't have to have MSI.

klamse

2012-07-15 19:55:31

Pretty sure I almost have it fixed! Except I'm getting the message:
"SRL Compiled in 0 msec
*** Smart Cannot Spawn Clients ***
Successfully executed."
What should I do?

Jos3ph

2012-07-15 19:56:03

Brandon, what am I doing wrong? Mine looks to have way more then you have.


Leonardo Da Vinci

2012-07-15 19:59:19

I keep getting these errors with any script I try to run…

[Error] C:\Users\****\Desktop\New folder\Simba\Includes\SRL/SRL/Misc/SMART.simba(53:19): Invalid number of parameters at line 52
Compiling failed.
[Error] C:\Users\****\Desktop\New folder\Simba\Includes\SRL\SRL\Misc\SMART.simba(56:19): Invalid number of parameters at line 55
Compiling failed.

Brandon

2012-07-15 20:00:27

Wow.. wtf?! Did you save everything?! LOLOL Just delete all those duplicates.. All the .so files you can delete too.

Law and Justice. Simba 0.99 does not use Smart.simba. Change your script from smart.simba to SmartParams.simba.

Jos3ph

2012-07-15 20:01:59

From: Brandon
Wow.. wtf?! Did you save everything?! LOLOL Just delete all those duplicates.. All the .so files you can delete too.

Law and Justice. Simba 0.99 does not use Smart.simba. Change your script from smart.simba to SmartParams.simba.


I ended up uninstalling Simba 0.99, I reinstalled a new copy;

I did the plugins fine, but again still here is the error I get


Exception in Script: Plugin(irokiplugin32) has not been found

let me post some screen shots.





What did I do wrong?

jaga

2012-07-15 20:06:29

I need to bot. So close to maxed acc with simba :)

Brandon

2012-07-15 20:06:31

From: po2n star
I ended up uninstalling Simba 0.99, I reinstalled a new copy;

I did the plugins fine, but again still here is the error I get


Exception in Script: Plugin(irokiplugin32) has not been found

let me post some screen shots.
What did I do wrong?


Iunno :S Reinstalling simba is supposed to give you iroki plugin. Just take my iroki from here I guess: http://www.mediafire.com/?1db0dwwt0sm1s3i

You could always try deleting The entire simba folder, installing simba, pressing update srl then do whatever if you don't wanna use mine.

Jos3ph

2012-07-15 20:08:00

From: Brandon
Iunno :S Reinstalling simba is supposed to give you iroki plugin. Just take my iroki from here I guess: http://www.mediafire.com/?1db0dwwt0sm1s3i

You could always try deleting The entire simba folder, installing simba, pressing update srl then do whatever if you don't wanna use mine.


I'll take yours; where do I place the iroki at?

klamse

2012-07-15 20:08:10

What am I doing wrong? It says
"SRL Compiled in 0 msec
*** Smart Cannot Spawn Clients ***
Successfully executed."

Brandon

2012-07-15 20:10:46

From: po2n star
I'll take yours; where do I place the iroki at?


Plugins folder.

From: klamse
What am I doing wrong? It says
"SRL Compiled in 0 msec
*** Smart Cannot Spawn Clients ***
Successfully executed."


Read http://villavu.com/forum/showthread.php?t=86387
At the end it also has the plugins if ur a lazy bum but at least try to compile them yourself first.

Jos3ph

2012-07-15 20:12:46

I noticed you said to law and justice to change your script from Smart.simba to smartparams.simba; do I just back out smart.simba and replace it with smartparams.simba for every script?

Brandon

2012-07-15 20:14:45

From: po2n star
I noticed you said to law and justice to change your script from Smart.simba to smartparams.simba; do I just back out smart.simba and replace it with smartparams.simba for every script?


Yes.

Jos3ph

2012-07-15 20:17:46

From: Brandon
Yes.


new error–I feel I am getting very close to getting running, I've come this far-don't want to give up.


[Error] C:\Simba\Includes\SRL/SRL/core/simba.simba(340:14): Unknown identifier '' at line 339
Compiling failed.
New fonts available. Current version: -1. Latest version: 13
Successfully installed the new fonts!
Freeing the current fonts. Creating new ones now
[Error] (352:1): Unexpected end of file at line 351
Compiling failed

Brandon

2012-07-15 20:19:34

From: po2n star
new error–I feel I am getting very close to getting running, I've come this far-don't want to give up.


[Error] C:\Simba\Includes\SRL/SRL/core/simba.simba(340:14): Unknown identifier '' at line 339
Compiling failed.
New fonts available. Current version: -1. Latest version: 13
Successfully installed the new fonts!
Freeing the current fonts. Creating new ones now
[Error] (352:1): Unexpected end of file at line 351
Compiling failed


Just exit and restart Simba. that '' is a bug that no one knows how to fix.
It's rare and usually restarting fixes it.

as for unexpected end of file, your script needs to have a begin and end. <– with a dot. Visit the scripting tutorial section.

Leonardo Da Vinci

2012-07-15 20:20:48

From: Brandon
Wow.. wtf?! Did you save everything?! LOLOL Just delete all those duplicates.. All the .so files you can delete too.

Law and Justice. Simba 0.99 does not use Smart.simba. Change your script from smart.simba to SmartParams.simba.


Oh okay, thanks buddy.
Now I'm getting this as an error:
[Error] C:\Users\****\Desktop\New folder\Simba\Includes\SRL/SRL/Misc/SmartParams.simba(37:8): Unknown identifier 'RSReady' at line 36
Compiling failed.
[Error] C:\Users\****\Desktop\New folder\Simba\Includes\SRL\SRL\Misc\SmartParams.simba(42:8): Unknown identifier 'RSReady' at line 41
Compiling failed.


Is it something I'm doing/not doing, or is it the scripts I'm using?
I did exactly as your post said.

Jos3ph

2012-07-15 20:22:17

[Error] C:\Users\JT\Desktop\Simba scripts\Simba Scripts\triband99.simba(220:3): Unknown identifier 'Smart_Server' at line 219
Compiling failed.

How do I look for Smart.simba in the script? I forgot what I did last time to quick find.

white_lycan

2012-07-15 20:23:50

i tried using your updater script Brandon, but i receive this error?
http://i.imgur.com/z9k1s.png

klamse

2012-07-15 20:32:05

Wait where is your script updater? I would like to try it.

Nasus

2012-07-15 20:32:19

Ggzz, you are an absolute SAINT for your patience helping these guys out.

Jos3ph

2012-07-15 20:34:35

From: Nasus
Ggzz, you are an absolute SAINT for your patience helping these guys out.


I agree, I'm going to take a break today for asking for help. I feel bad asking so many questions, so I'll take a break and come back at it again tmrw.

Thanks Brandon for all the help this evening man, I am very close from getting running again.

xx2kyle2xx

2012-07-15 20:35:31

Ok I got my scripts all running, just one problem, Smart loads fine and it gets to the login screen but then it cant log me in due to the fact that my mouse clicks just above the username box and wont click in the right place. What can I do to fix this?

shstiger2009

2012-07-15 20:35:32

Brandon better be shitting out rep points after all this is done…. :D

iiNveRsioN

2012-07-15 20:36:46

Thanks Brandon. I got it to work and it works awesomely with your fixes.

However on scripts that use Smart_Drawboxes I'm not sure what to change on them to make them work.

Example: Flight's Livid Farmer

Here is what I have:


{/////////////////////////////////////////
// LividFarmer //
// (by Flight) //
// //
// Version: 1.2 //
/////////////////////////////////////////}

program LividFarmer;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

Const

//SRL Stats
SRLStats_Username = '';
SRLStats_Password = '';

//General settings
DebugMode = True; //On-screen debugging?
SwitchWorlds = True; //Switch worlds after a break?

//Break settings
BreakIn = 13500; //How long before we take a break? (minutes)
BreakFor = 15; //How long will we break for? (minutes)
Bir = 13; //Random minutes to add/subtract from how long until we break
Bfr = 7; //Random minutes to add/subjtract from break duraction

Var

//Static
Version: String;
SCols,PCols: TIntegerArray;

//Dynamic
FarmXP,FarmXP_O,MageXP,
MageXP_O,AgilXP,AgilXP_O,
Points,CommitTime,
ReportTime,PlantCount,
SoilCount: Integer;
CheckedPauline: Boolean;

//Break variables
w,x,y,z,RealBTime,CurrentBTime,
BreakRounds,TotalBreaks: Integer;


Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Farming;
Active := True;
end;
end;

Procedure LoadVars;
begin
Version := '1.2';
MarkTime(ReportTime);
MarkTime(CommitTime);
CheckedPauline := False;

SetupSRLStats(156, SRLStats_Username, SRLStats_Password);

w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange(-Bir * 60000, Bir * 60000);
z := RandomRange(-Bfr * 60000, Bfr * 60000);

SCols := [5073267, 5204854, 5465452, 5402748]; //Soil colors
PCols := [4542282, 4674124, 4871760, 5003346, 5135188]; //Healthy livid colors
end;

Procedure Report;
Var
FXPH,MXPH,AXPH: Integer;
begin
FXPH := Round((FarmXP * 3600) / (GetTimeRunning / 1000));
MXPH := Round((MageXP * 3600) / (GetTimeRunning / 1000));
AXPH := Round((AgilXP * 3600) / (GetTimeRunning / 1000));

ClearDebug;
//SRLProgressReport(ResultDebugBox, 'LividFarmer', 'Flight', Version,
//['Run time', 'Points', 'Plants cured', 'Soil fertilized', 'Farming XP',
//'Farming XP/Hr', 'Magic XP', 'Magic XP/Hr', 'Agility XP', 'Agility XP/Hr','Breaks'],
//[MsToTime(GetTimeRunning, Time_Abbrev), Points, PlantCount, SoilCount, FarmXP,
// FXPH, MageXP, MXPH, AgilXP, AXPH, TotalBreaks]);

MarkTime(ReportTime);
end;

Procedure Commit;
begin
stats_IncVariable('Farming EXP (Gained)', FarmXP_O);
stats_IncVariable('Magic EXP (Gained)', MageXP_O);
stats_IncVariable('Agility EXP (Gained)', AgilXP_O);
Stats_Commit;
FarmXP_O := 0;
MageXP_O := 0;
AgilXP_O := 0;
MarkTime(CommitTime);
end;

//By Bandland100, modified to shift mouse speeds after every step
procedure SuperWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
var
veloX,veloY,windX,windY,veloMag,dist,randomDist,lastDist,step: extended;
lastX,lastY,MSP,W: integer;
sqrt2,sqrt3,sqrt5: extended;
begin
MSP := MouseSpeed;
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 3) then
begin
maxStep:= random(3) + 3.0;
end else
begin
maxStep:= maxStep / sqrt5;
end;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;

case Random(50) of
1..25: W := (MSP + (Random((MSP/4))));
26..50: W := (MSP - (RandomRange((MSP/2), MSP-1)));
end;
if (W < 1) then
W := 1;

if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));

if not DebugMode then
SMART_DrawDotsEx(False, [Point(lastX, lastY)], 65280);

step:= hypot(xs - lastX, ys - lastY);
wait(W);
lastdist:= dist;
end;

if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));

MouseSpeed := MSP;
end;

Procedure HumanRandomMouse;
var
randSpeed: extended;
x, y, firstSpeed: integer;
begin
case(Random(10)) of
2..8:
begin
firstSpeed := mouseSpeed;

mouseSpeed := RandomRange(5,10);
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
GetMousePos(x, y);
SuperWindMouse(x, y, RandomRange(x - 75, x + 75), RandomRange(y - 75, y + 75),
30, 55, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);

mouseSpeed := firstSpeed;
Smart_ClearCanvas;
end;
end;
end;

Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;

randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
SuperWindMouse(X, Y, X2, Y2, 9.0, 3.0, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
end;

Procedure ReturnValues(colors: TIntegerArray; var HueMods, SatMods: Extended; var color, Tolerance: Integer);
Var
h, s, t: Extended;
I,II : integer;
HSLColor : Array[1..3] of Extended;
HSL : Array[0..1] of Array[1..3] of Extended;
begin;
For I:= 1 to 3 do
begin;
HSL[0][i] := 255;
end;

For I:= 0 to High(Colors) do
begin;
ColortoHSL(Colors[i],HSLColor[1],HSLColor[2],HSLColor[3]);
For II:= 1 to 3 do
begin;
HSL[0][II] := MinE(HSLColor[II],HSL[0][II]);
HSL[1][II] := MaxE(HSLColor[II],HSL[1][II]);
end;
end;

H := (HSL[1][1] - HSL[0][1]);
S := (HSL[1][2] - HSL[0][2]);
T := (HSL[1][3] - HSL[0][3]);

try
HueMods := (H/T);
SatMods := (S/T);
Tolerance := Round(t);
except
HueMods := 0;
SatMods := 0;
Tolerance := Round(0.0);
end;

Color := HSLToColor((HSL[1][1] + HSL[0][1]) div 2,(HSL[1][2] + HSL[0][2]) div 2,(HSL[1][3] + HSL[0][3]) div 2);
end;

Function FindLivid(Var X,Y: Integer): Boolean;
var
B: TBox;
TPA,PAr: TPointArray;
i,h,CTS: Integer;
TBA: TBoxArray;
MBP: TPoint;
ATPA: T2DPointArray;
begin
Result := False;
if not LoggedIn then Exit;

CTS := GetColorToleranceSpeed;
PAr := TPAFromBox(IntToBox(245, 135, 275, 190));

ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(8.34, 0.33);

FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1907996, MSX1, MSY1, MSX2, MSY2, 6);
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (Length(TPA) < 1) then
Exit;

TPA := ClearTPAFromTPA(TPA, PAr);
ATPA := SplitTPAEx(TPA, 30, 40);
SortATPAFromFirstpoint(ATPA, Point(MSCX, MSCY));;

for i := 0 to High(ATPA) do
begin
if (GetArrayLength(ATPA[I]) > 50) then
begin
B := GetTPABounds(ATPA[i]);

SetArrayLength(TBA, Length(TBA)+1);
TBA[High(TBA)] := B;
end;
end;

if DebugMode then
begin
SMART_DrawBoxes(True, TBA, clRed);
if (Length(TBA) > 0) then
SMART_DrawBoxEx(False, TBA[0], 65280);
end;

for h := 0 to High(TBA) do
begin
MBP := MiddleBox(TBA[h]);
HumanMMouse(MBP.X, MBP.Y, 5, 5);
if WaitUpTextMulti(['Cure', 'plant', 'Diseased', 'livd'], 500) then
begin
Result := True;
GetMousePos(X, Y);
Exit;
end else
Result := False;
end;

end;

Function FindSoil(Var X,Y: Integer): Boolean;
var
B,B2: TBox;
TPA,TPA2,PAr: TPointArray;
Hmod,Hmod2,Smod2,Smod: Extended;
i,h,Tol,Tol2,CTS,Col2,Col: Integer;
TBA: TBoxArray;
MBP: TPoint;
ATPA: T2DPointArray;
begin
CTS := GetColorToleranceSpeed;
PAr := TPAFromBox(IntToBox(245, 155, 270, 190));

ColorToleranceSpeed(2);
ReturnValues(SCols, Hmod, Smod, Col, Tol);
SetColorSpeed2Modifiers(Hmod, SMod);

FindColorsSpiralTolerance(MSCX, MSCY, TPA, Col, MSX1, MSY1, MSX2, MSY2, Tol);

if (Length(TPA) < 1) then
begin
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

TPA := ClearTPAFromTPA(TPA, PAr);
ATPA := SplitTPAEx(TPA, 30, 30);
SortATPAFromFirstpoint(ATPA, Point(MSCX, MSCY));

for i := 0 to High(ATPA) do
begin
B := GetTPABounds(ATPA[i]);

ReturnValues(PCols, Hmod2, Smod2, Col2, Tol2);
SetColorSpeed2Modifiers(Hmod2, SMod2);

if not FindColorsSpiralTolerance(MSCX, MSCY, TPA2, Col2, B.X1, B.Y1, B.X2, B.Y2, Tol2) then
begin
B2 := GetTPABounds(ATPA[i]);
SetArrayLength(TBA, Length(TBA)+1);
TBA[High(TBA)] := B2;
end;

end;

ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if DebugMode then
begin
SMART_DrawBoxes(True, TBA, clRed);
if (Length(TBA) > 0) then
SMART_DrawBoxEx(False, TBA[0], 65280);
end;

for h := 0 to High(TBA) do
begin
MBP := MiddleBox(TBA[h]);
HumanMMouse(MBP.X, MBP.Y, 5, 5);
if WaitUpTextMulti(['Fertilise', 'Empty', 'patch'], 500) then
begin
Result := True;
GetMousePos(X, Y);
Exit;
end else
Result := False;
end;

end;

Function FindPauline(Var X,Y: Integer): Boolean;
var
B: TBox;
TPA,PArr: TPointArray;
i,h,CTS: Integer;
MBP: TPoint;
ATPA: T2DPointArray;
Cols,Tols: TIntegerArray;
HMods,SMods: Array of Extended;
begin
Result := False;
if not LoggedIn then Exit;

CTS := GetColorToleranceSpeed;
PArr := TPAFromBox(IntToBox(245, 135, 275, 190));

Cols := [6319982, 6583413, 6648947];
Tols := [9, 12, 9];
HMods := [0.10, 0.09, 0.09];
SMods := [0.04, 0.08, 0.08];

for h := 0 to High(Cols) do
begin
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMods[h], SMods[h]);
FindColorsSpiralTolerance(370, 30, TPA, Cols[h], 300, 5, 420, 70, Tols[h]);
TPA := ClearTPAFromTPA(TPA, PArr);
if (Length(TPA) > 0) then break;
end;

ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (Length(TPA) < 1) then
begin
Writeln('No Pauline colors found');
Exit;
end;

TPA := ClearTPAFromTPA(TPA, PArr);
ATPA := SplitTPAEx(TPA, 15, 25);
SortATPAFromFirstpoint(ATPA, Point(370, 30));;

for i := 0 to High(ATPA) do
begin
B := GetTPABounds(ATPA[i]);

if DebugMode then
SMART_DrawBoxEx(True, B, 65280);

MBP := MiddleBox(B);
HumanMMouse(MBP.X, MBP.Y, 5, 5);
if WaitUpTextMulti(['alk-t', 'rain', 'auli', 'Paul','olari'], 500) then
begin
Result := True;
GetMousePos(X, Y);
Exit;
end;
end;

end;

Function GetLividType(X, Y: Integer): Integer;
var
R1C1,R1C2,R1C3,R1C4,R1C5,
R2C1,R2C2,R2C3,R2C4,R2C5,
R3C1,R3C2,R3C3,R3C4,R3C5: TBox;
begin
Result := 0;
//Top row
R1C1 := IntToBox(100, 20, 150, 70);
R1C2 := IntToBox(165, 20, 220, 70);
R1C3 := IntToBox(235, 20, 290, 70);
R1C4 := IntToBox(300, 20, 355, 70);
R1C5 := IntToBox(370, 20, 440, 70);

//Middle row
R2C1 := IntToBox(70, 100, 135, 160);
R2C2 := IntToBox(155, 100, 220, 160);
R2C3 := IntToBox(230, 100, 290, 160);
R2C4 := IntToBox(305, 100, 365, 160);
R2C5 := IntToBox(380, 100, 440, 160);

//Bottom row
R3C1 := IntToBox(60, 210, 125, 270);
R3C2 := IntToBox(140, 210, 215, 270);
R3C3 := IntToBox(225, 210, 295, 270);
R3C4 := IntToBox(305, 210, 375, 270);
R3C5 := IntToBox(400, 210, 470, 270);

if (IntInBox(X, Y, R1C1) or IntInBox(X, Y, R1C2) or //Type 1
IntInBox(X, Y, R1C3) or IntInBox(X, Y, R1C5)) then
Result := 1
else if (IntInBox(X, Y, R1C4) or IntInBox(X, Y, R2C3) or //Type 2
IntInBox(X, Y, R2C4) or IntInBox(X, Y, R2C5)) then
Result := 2
else if (IntInBox(X, Y, R2C2) or IntInBox(X, Y, R3C1) or //Type 3
IntInBox(X, Y, R3C5)) then
Result := 3
else if (IntInBox(X, Y, R2C1) or IntInBox(X, Y, R3C2) or //Type 4
IntInBox(X, Y, R3C3) or IntInBox(X, Y, R3C4)) then
Result := 4;

end;

Function LividMenu: Boolean;
var
X,Y: Integer;
begin
Result := FindText(x, y, 'train', SmallChars, MIX1, MIY1, MIX2, MIY2);
end;

Function TalkScreen: Boolean;
begin
Result := GetColor(216, 360) = 7913190;
end;

Procedure QuickLow;
begin
KeyDown(40);
Wait(850 + Random(100));
KeyUp(40);
end;

Procedure QuickHigh;
begin
Mouse(542, 24, 15, 15, mouse_left);
KeyDown(38);
Wait(950 + Random(100));
KeyUp(38);
end;

Procedure CureLivid(Strain: Integer);
var
SPoint: TPoint;
begin
if (Strain = 1) then
SPoint := Point(590, 280)
else if (Strain = 2) then
SPoint := Point(680, 280)
else if (Strain = 3) then
SPoint := Point(590, 400)
else if (Strain = 4) then
SPoint := Point(680, 400);

HumanMMouse(SPoint.X, SPoint.Y, 10, 10);
if WaitUpText('Continue', 300) then
begin
ClickMouse2(True);
Inc(PlantCount);
IncEx(FarmXP_O, 92);
IncEx(FarmXP, 92);
IncEx(MageXP_O, 60);
IncEx(MageXP, 60);
IncEx(Points, 20);
end;
end;

Function HandleLivids: Boolean;
var
X,Y,T: Integer;
label
Start;
begin
Result := False;

Start:
if not LoggedIn then Exit;
FindNormalRandoms;

MouseSpeed := RandomRange(12, 16);

if FindLivid(X, Y) then
begin
if (GetLividType(X, Y) = 0) then
GoTo Start;

CheckedPauline := False;

ClickMouse2(False);
if WaitOptionMulti(['Cure', 're-p', '-pl', 'lant'], 500) then
begin
HumanMMouse(635, 310, 65, 70);
if DebugMode then
Smart_ClearCanvas;
end;

MarkTime(T);
repeat
if (TimeFromMark(T) > 3000) then
Exit;
if LividMenu then
break;
until(false)

if LividMenu then
begin
CureLivid(GetLividType(X, Y));
Wait(randomRange(1915, 2570));
GoTo Start;
end;
end else
Result := True;

end;

Function HandleSoil: Boolean;
var
X,Y: Integer;
label
Start;
begin
Result := False;

Start:
MouseSpeed := RandomRange(12, 16);
FindNormalRandoms;

if FindSoil(X, Y) then
begin
CheckedPauline := False;

ClickMouse2(False);
if WaitOption('Empty', 500) then
begin
Inc(SoilCount);
IncEx(FarmXP_O, 92);
IncEx(FarmXP, 92);
IncEx(MageXP_O, 87);
IncEx(MageXP, 87);
IncEx(Points, 20);
Smart_ClearCanvas;
Wait(randomRange(1915, 2570));
GoTo Start;
end;
end else
Result := True;

end;

Function HandleThatTiredPaulinePersonWhoNeedsEncouragementBecauseWeAreProLikeABoss: Boolean;
Var
X,Y: Integer;
ExBMP,FanBMP,LukBMP,
ProBMP,WeBMP,WellBMP: Integer;
begin
Result := False;
if not LoggedIn then Exit;

if ((not FindLivid(X, Y)) and (not FindSoil(X, Y))) then
begin
QuickLow;
MakeCompass('E');
Wait(RandomRange(235, 320));

if FindPauline(X, Y) then
begin
if WaitUpTextMulti(['Drai', 'raine'], 500) then
begin
ClickMouse2(False);
if WaitOptionMulti(['Ener', 'ergis', 'gise'], 500) then
begin

if DebugMode then
Smart_ClearCanvas;

if WaitFunc(@TalkScreen, 10, 3000) then
begin
ExBMP := BitmapFromString(16, 5, 'meJw7cQIFMMAAhI0sAuGiiaDJYop' +
'QSz0e92C6H9MjcAAAAUs6mQ==');
FanBMP := BitmapFromString(67, 6, 'meJw7cQIKGHCAE0gAUxBZBI96POJ' +
'4zCTDGcguwSWI7FQ8gsRrwQXw+AWPFvwBRU+PEBNlpGqhv0eI9Ckx' +
'WgY2Rij3CMGoITKXEXQzMSmHkqQFAMDdFvg=');
LukBMP := BitmapFromString(18, 7, 'meJw7ceIEAwPDCTCJH8DVnAAD/Lp' +
'OIAEidSGLI+siaBEZunC5kKAuXOaQpAWiCwCFcEZR');
ProBMP := BitmapFromString(26, 7, 'meJw7cQIBGJAAVkFMWWQFmFw0Bho' +
'bqyCyLjzieJxHqmlYPUi5aZS7jYHcWMDvI1wAl0YAdzB8OQ==');
WellBMP := BitmapFromString(41, 6, 'meJw7cQIBGLABTFmC6nExcOnFahS' +
'mIJo5JFmNSy8uc/C4EI/VmCQDkpcxgxHTHEwHUGg1LvNxWY1LOzFG' +
'4WFjDQFMBQQFibEaTS8AGGuowQ==');
WeBMP := BitmapFromString(23, 8, 'meJw7ceIEAwycQGKTBE5QwxC4XjQ' +
'TTsAAHl3ICjANIeg8TAVYDUEG+A0hxiW4/EJQkAzv4HIe8QELAEER' +
'YnE=');

if (FindBitmapToleranceIn(ExBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
FindBitmapToleranceIn(WellBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
FindBitmapToleranceIn(FanBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
FindBitmapToleranceIn(LukBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
FindBitmapToleranceIn(ProBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
FindBitmapToleranceIn(WeBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15)) then
begin
HumanMMouse(X, Y+2, 10, 2);
ClickMouse2(True);
IncEx(AgilXP_O, 168);
IncEx(AgilXP, 168);
IncEx(MageXP_O, 100);
IncEx(MageXP, 100);
IncEx(Points, 100);
end;

FreeBitmap(ExBMP);
FreeBitmap(WellBMP);
FreeBitmap(FanBMP);
FreeBitmap(LukBMP);
FreeBitmap(ProBMP);
FreeBitmap(WeBMP);
end;

end;
end;

Result := True;
end;

QuickHigh;
CheckedPauline := True;

end;

end;

Function DoAntiban: Boolean;
var
i: Integer;
begin
if not LoggedIn then Exit;
i := Random(900);
case i of
1..45:
begin
HumanRandomMouse;
Result := True;
end;
46:
begin
HoverSkill('Farming', False);
Result := True;
end;
47:
begin
HoverSkill('Magic', False);
Result := True;
end;
end;

Wait(100);

end;

Function BreakHandler(BreakIn, BreakFor, randBreakIn, randBreakFor: Integer): Boolean;
Var
h,m,s: integer;
begin
if not LoggedIn then Exit;

if (HowManyPlayers = 1) then
begin
if (GetTimeRunning < ((w) + (y) + BreakRounds)) then Exit
else
if (GetTimeRunning > ((w) + (y) + BreakRounds)) then
begin
RealBTime := ((x+z)/60000);
Writeln('Taking a break for about ' + IntToStr(RealBTime) + ' minutes.');
Logout;
MarkTime(CurrentBTime);
repeat
Wait(21000);
ConvertTime((x+z)-TimeFromMark(CurrentBTime), h, m, s);
ClearDebug;
Writeln('Breaktime left: '+IntToStr(h)+':'+IntToStr(m)+':'+IntToStr(s));
until(TimeFromMark(CurrentBTime)>(x+z));
Writeln('Logging in.');
if SwitchWorlds then
if LoginPlayerToLob then
ChangeWorld(RandomWorld(True, False))
else
LoginPlayer;
Wait(4000);
Result := LoggedIn;
ClickNorth(SRL_ANGLE_HIGH);
IncEx(BreakRounds, (w) + (x));
Inc(TotalBreaks);
Writeln('The next break will occur in about ' + IntToStr(BreakIn) + ' minutes.');
w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange(-Bir * 60000, Bir * 60000);
z := RandomRange(-Bfr * 60000, Bfr * 60000);
end;
end;
end;

Procedure FoundARandom;
begin
Writeln('Found a random!');
PlaySound(ScriptPath+'evilaugh.wav');
Wait(RandomRange(10000, 20000));
end;

begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

setupSRL();
IgnoreBar;
DeclarePlayers;

LoadVars;

Smart_ClearCanvas;
LoginPlayer;

QuickHigh;
//SRL_Procs[SRL_OnFindRandom] := @FoundARandom;

Repeat

if not LoggedIn then
begin
LoginPlayer;
ClickNorth(SRL_ANGLE_HIGH);
end;

BreakHandler(BreakIn,BreakFor,Bir,Bfr);

if (TimeFromMark(CommitTime)>=30000) then
Commit;

if (TimeFromMark(ReportTime)>=30000) then
Report;

FindNormalRandoms;
HandleLivids;
HandleSoil;

if not CheckedPauline then
HandleThatTiredPaulinePersonWhoNeedsEncouragementBecauseWeAreProLikeABoss;

DoAntiban;

Until(AllPlayersInactive)
end.

But I'm not sure what to do about the Smart_Drawboxes.. any help is appreciated from anyone.

hackingislol133

2012-07-15 20:39:12

The fixes work, but the with the coordinate offset (y) created by the new overlay. Most of the banking coordinates are inaccurate.

For those still trying to get simba running, you'll likely be disappointed until the function list is updated.

happycamper207

2012-07-15 20:39:34

Brandon i'm gettting this error when i try to run simba [Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40
Compiling failed.

Minimalist

2012-07-15 20:42:02

Simba crashes (closes right away) when I open it after these fixes

ggsus

2012-07-15 20:53:06

I hope they update it soon! I appreciate everything that they are doing though :)! the includes wouldnt work for me also :(.. I thought they said Simba would be fixed within a day or two on tuesday? :S, oh my god, I really do rely on Simba lol.

supersayian2224

2012-07-15 21:05:12

Brandon, what are the details for updating SMART? I got the link for the download but I have no clue what to do with it.

fire_burn_00

2012-07-15 21:38:20

Should the leachers just remove simba from their computers? If it's true that the fix is being delayed to teach leachers how to script, then i'm upset with the staff tremendously… I've tried making scripts with YoHoJo's youtube videos but it's not working for me. Plus… I don't have the time.

Sawyer

2012-07-15 21:46:06

They will release it for us idiots who don't want to learn eventually :p

happycamper207

2012-07-15 21:48:15

I completely agreed with you fire burn. I tried to learn scripting from maybe 5 of yohojos videos, i can do some things. Although i can't seem to get this simba problem fixed im tried for 12 hrs so far and nothing. Plus i have work most of the day so i dont have time to spend. trying to get this to work. I really aprecate all you scripts and programmers, and specials thanks to Brandon , but not giving the update because a some of the members were making complaints, is not ok. It's affecting the whole community of simba.:(

Esparno

2012-07-15 21:50:08

From: Law and Justice
Oh okay, thanks buddy.
Now I'm getting this as an error:


Is it something I'm doing/not doing, or is it the scripts I'm using?
I did exactly as your post said.


I am currently having the same exact errors, having followed the instructions.

Tlachtli

2012-07-15 21:50:41

If you've followed all of Brandon's steps, most of the errors you're getting are script-side and in my experience are due mostly to outdated declarations. With some finagling you can get most scripts working again.

Austin

2012-07-15 21:53:19

From: xx2kyle2xx
Ok I got my scripts all running, just one problem, Smart loads fine and it gets to the login screen but then it cant log me in due to the fact that my mouse clicks just above the username box and wont click in the right place. What can I do to fix this?

And you tried actually logging in yourself and then rerunning it?

Leonardo Da Vinci

2012-07-15 22:08:28

From: Esparno
I am currently having the same exact errors, having followed the instructions.


I'm glad it's not just me.
I'm sure we'll have the answer soon.

Brandon

2012-07-15 22:15:21

K someone needs to make a video of this.. I'm getting tired writing instructions.. Here is my simba folder. Do whatever you want with it: http://www.mediafire.com/?dytrd9dr75midfb

Any errors will be script errors. Learn to script and read the Updates thread and you will be able to fix it.

Otherwise follow all the instructions and it will work the same. All you had to do was drag what was on the github and run a script. If smart wasn't working I posted a picture-picture tutorial on how to compile smart. Yet I still see posts on why smart gives errors -_-

The instructions were here: http://villavu.com/forum/showthread.php?p=1070137#post1070137

and to update scripts it was here: http://villavu.com/forum/showthread.php?t=84334&highlight=compile+smart

and to compile smart it was here: http://villavu.com/forum/showthread.php?goto=newpost&t=86387

Leonardo Da Vinci

2012-07-15 22:27:38

From: Brandon
K someone needs to make a video of this.. I'm getting tired writing instructions.. Here is my simba folder. Do whatever you want with it: http://www.mediafire.com/?dytrd9dr75midfb

Any errors will be script errors. Learn to script and read the Updates thread and you will be able to fix it.

Otherwise follow all the instructions and it will work the same. All you had to do was drag what was on the github and run a script. If smart wasn't working I posted a picture-picture tutorial on how to compile smart. Yet I still see posts on why smart gives errors -_-

The instructions were here: http://villavu.com/forum/showthread.php?p=1070137#post1070137

and to update scripts it was here: http://villavu.com/forum/showthread.php?t=84334&highlight=compile+smart

and to compile smart it was here: http://villavu.com/forum/showthread.php?goto=newpost&t=86387


We appreciate the help, man. Very much.
But could I have an example of which scripts work?
Perhaps it's scripts I'm using…

ThatGuy727

2012-07-15 22:30:21

Compiled successfully in 468 ms.
Error: Exception: Access violation at line 501
The following bitmaps were not freed: [0]

how do i fix this???

Kyle Undefined

2012-07-15 22:33:56

From: fire_burn_00
Should the leachers just remove simba from their computers? If it's true that the fix is being delayed to teach leachers how to script, then i'm upset with the staff tremendously… I've tried making scripts with YoHoJo's youtube videos but it's not working for me. Plus… I don't have the time.


The fix isn't being delayed for that reason, why would you even think that? We have lives you know, we don't work for anyone here. Just be patient.

From: happycamper207
I completely agreed with you fire burn. I tried to learn scripting from maybe 5 of yohojos videos, i can do some things. Although i can't seem to get this simba problem fixed im tried for 12 hrs so far and nothing. Plus i have work most of the day so i dont have time to spend. trying to get this to work. I really aprecate all you scripts and programmers, and specials thanks to Brandon , but not giving the update because a some of the members were making complaints, is not ok. It's affecting the whole community of simba.:(


Read above.

From: ThatGuy727
Compiled successfully in 468 ms.
Error: Exception: Access violation at line 501
The following bitmaps were not freed: [0]

how do i fix this???


Make sure you are running as an Admin.

krisg05

2012-07-15 22:34:37

hi has this fixed banking as seems to be some of clicking

ThatGuy727

2012-07-15 22:41:47

am i running as admin and i still get this error

Compiled successfully in 468 ms.
Error: Exception: Access violation at line 501
The following bitmaps were not freed: [0]

Brandon

2012-07-15 22:47:57

From: ThatGuy727
am i running as admin and i still get this error

Compiled successfully in 468 ms.
Error: Exception: Access violation at line 501
The following bitmaps were not freed: [0]


Open C:/Simba/Simba.exe first then open whatever script you want from the file menu. That fixes it for me.


@Banking yes.. you can try this script:


{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
WorldInfo := [27, 42, 45, 46, 48, 52, 59, 70, 72, 78, 79, 87, 104, 115, 117];
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Slayer;
Active := True;
end;
end;

var
Colour: String;
begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

DeclarePlayers;
SetupSRL;

OpenBankFast('vwb'); //Opens Varrock West Bank.
MouseTBox(BankIndexToMSBox(1), MOUSE_MOVE);
Wait(500);
Writeln(GetUptext);
CloseBank;
Writeln(GetMMLevels('hp', Colour));
WriteLn(GetSkillInfo('cooking', false));
GameTab(Tab_Magic);
Wait(1000);
GameTab(Tab_Inv);
end.

That's what I used to test most of the functions. I tried withdrawing and depositing and uptext and they work fine.
I haven't tried opening BankChests but I'm sure it'll work too. I also did not test SPS.

iiNveRsioN

2012-07-15 22:48:43

From: Law and Justice
We appreciate the help, man. Very much.
But could I have an example of which scripts work?
Perhaps it's scripts I'm using…


I have added the fix to the script and it works 100% for me. It will work for you too provided you have done the fix to your files. You can use it as your test or whatever.



{=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=|
|=----------------------------------------------------------------------------=|
|= =|
|= Rimmington Tele-Banker v0.7 =|
|= =|
|= by: Runaway =|
|= =|
|=----------------------------------------------------------------------------=|
|= =|
|= This script mines any ore at the Rimmington mine. It uses the =|
|= unlimited teleports supplied by the dungeoneering ring and the =|
|= clan vexillum to bank and return to the mine. =|
|= =|
|= How to use: =|
|= =|
|= 1) Fill out the setup below. =|
|= =|
|= 2) Place your character anywhere. =|
|= =|
|= 3) Equip both a clan vexillum and a ring of kinship. =|
|= =|
|= 4) Have a pickaxe in the first slot of your inventory. =|
|= =|
|= 5) Hit run! =|
|= =|
|= Requirements: =|
|= =|
|= - None! =|
|= =|
|=----------------------------------------------------------------------------=|
|=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=}

program RimmingtonTeleBanker;

{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

var
ClanToMine: array[0..3] of array[0..1] of array of Integer;
DungToBank: array[0..1] of array[0..1] of array of Integer;
MineToSpot: array[0..1] of array of Integer;
NPC, InvOre, OreColor, CopperColor, TinColor, ClayColor, IronColor, GoldColor,
BankerColor, PickaxeColor, ExColors, ExTol: array of Integer;
cx, cy, t, Loop, OresMined, OresPicked, LoadsDone, lExColors, NPCColor,
RockColor, VexColor, KinColor, MineWait, AvgMine, StartMine, Stolen, HopCount: Integer;
OreUptext: String;
OreXP: Extended;
Aligned: Boolean;

{=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=|
|=-------------------------------=BEGIN-SETUP=--------------------------------=|
|=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=}

const
OreToMine = 'iron'; // Valid choices: copper, tin, iron, clay, gold
UserPin = ''; // Leave blank if not using a pin
TimeToRun = 360; // Minutes to run the script for (0 to run until stopped)
HopIfTaken = False; // True to hop worlds if the spot is taken
//PickupDrops = False; // True to pickup ores on the ground
UseRest = True; // Rest when low energy

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
Name := ''; // Player username
Pass := ''; // Player password
BoxRewards := ['XP', 'ostume', 'mote', 'oins', 'une', 'ssence'];
LampSkill := Skill_MINING;
Active := True;
end;
end;

procedure DeclareColors;
begin
// Only update if NPCs cannot be located \\
NPC := [2162687, 1900543, 1783370, 1702399, 1701113, 1505535, 1437694, 1374705, 1372665, 1244415, 1179647, 1179644, 1043199, 981753, 916991, 786430, 783103, 777964, 773595, 720883, 718847, 717815, 717567, 654579, 653311, 651775, 648667, 645348, 640979, 589823, 589311, 588280, 587000, 584957, 584171, 583916, 579817, 579802, 578776, 575448, 574407, 522732, 458751, 450798, 393210, 391151, 327667, 326911, 326385, 325112, 323558, 322788, 319972, 318418, 317648, 315603, 314049, 313279, 257009, 255470, 196604, 127367, 65522, 65233, 63478, 61670, 61439, 61150, 60651, 59355, 56781, 55511, 55014, 53474, 51142, 50645, 49105, 47302];

{=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=|
|=-------------------------------=END-SETUP=----------------------------------=|
|=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=}

BankerColor := [2968144, 5408402, 8609098]; // Main color first
PickaxeColor := [1517364, 2111304];

RockColor := 7834010;
CopperColor := [RockColor, 4951024];
TinColor := [RockColor, 11513783];
ClayColor := [RockColor, 8174044];
IronColor := [RockColor, 2765644];
GoldColor := [RockColor, 5165309];

ClanToMine[0][0] := [5068118, 3361105, 2965055, 2508359]; // Colors
ClanToMine[0][1] := [675, 128]; // Sort point
ClanToMine[1][0] := [5068118, 2177087, 2575706, 2771553];
ClanToMine[1][1] := [628, 144];
ClanToMine[2][0] := [2504253, 2967881, 2243141];
ClanToMine[2][1] := [623, 139];
ClanToMine[3][0] := [2114652, 5921623, 2444907];
ClanToMine[3][1] := [632, 139];

DungToBank[0][0] := [15198705, 10132641, 13619672, 15461616]; // Colors
DungToBank[0][1] := [638, 38]; // Sort point
DungToBank[1][0] := [15920097, 15922418, 13223098];
DungToBank[1][1] := [619, 36];

VexColor := 9784898;
KinColor := 3162439;

MMBox := IntToBox(MMX1, MMY1, MMX2, MMY2);
MSBox := IntToBox(MSX1, MSY1, MSX2, MSY2);
end;

const
Version = '0.7';
WalkTol = 30;
WalkMaxDist = 25;
WalkFilter = 25;
WalkTrim = 1000;

procedure ProgressReport; forward;

procedure Currently(Doing: String);
begin
Status(Doing);
DebugLn(Doing);
end;

procedure Error(Reason: String);
begin
Currently(Reason);
WriteLn('ERROR: '+ Reason);
Logout;
TerminateScript;
end;

procedure SetupVars;
begin
Currently('Gathering ore data...');
OreXP := 0;
if (OreToMine = '') then
Error('Enter the ore you want to mine!');
case Lowercase(OreToMine) of
'copper':
begin
OreXP := 17.5; OreUptext := 'per ore'; OreColor := CopperColor;
ExColors := []; ExTol := []; lExColors := Length(ExColors);
InvOre := [3697338, 3558753];
MineToSpot[0] := [3426135, 2511751]; // Colors
MineToSpot[1] := [604, 101]; // Sort point
end;
'tin':
begin
OreXP := 17.5; OreUptext := 'in ore'; OreColor := TinColor;
ExColors := []; ExTol := []; lExColors := Length(ExColors);
InvOre := [6645354, 3558753];
MineToSpot[0] := [2905180, 5987161];
MineToSpot[1] := [623, 114];
end;
'iron':
begin
OreXP := 35; OreUptext := 'ron ore'; OreColor := IronColor;
ExColors := [CopperColor[1]]; ExTol := [4]; lExColors := Length(ExColors);
InvOre := [1581111, 4020076];
MineToSpot[0] := [3294552, 5987161];
MineToSpot[1] := [613, 84];
end;
'clay':
begin
OreXP := 5; OreUptext := 'lay'; OreColor := ClayColor;
ExColors := [IronColor[1], GoldColor[1]]; ExTol := [3, 3]; lExColors := Length(ExColors);
InvOre := [5010055, 4680318];
MineToSpot[0] := [3163472, 2511751];
MineToSpot[1] := [645, 76];
end;
'gold':
begin
OreXP := 65; OreUptext := 'old ore'; OreColor := GoldColor;
ExColors := []; ExTol := []; lExColors := Length(ExColors);
InvOre := [1675960, 3558753];
MineToSpot[0] := [2905180, 5987161];
MineToSpot[1] := [644, 110];
end;
end;
if (OreXP = 0) then
Error('Invalid ore entered!');
MineWait := 5000;
AvgMine := MineWait;
HopCount := 15;
end;

function ColorWait(WaitTime, Color, Tol: Integer; Box: TBox): Boolean;
var
i, x, y: Integer;
begin
if not LoggedIn then Exit;
Result := False;
MarkTime(i);
repeat
Result := FindColorTolerance(x, y, Color, Box.x1, Box.y1, Box.x2, Box.y2, Tol);
if Result then
Break;
Wait(100+Random(50));
until(TimeFromMark(i) > WaitTime);
end;

function ColorWaitMulti(WaitTime: Integer; Colors: TIntegerArray; Box: TBoxArray; Strict: Boolean): Boolean;
var
hColors, Res, i: Integer;
begin
if not LoggedIn then Exit;
Result := False;
Res := 0;
hColors := High(Colors);
for i := 0 to hColors do
begin
if ColorWait(WaitTime, Colors[i], 15, Box[i]) then
Inc(Res);
end;
if Strict then
begin
if (Res > hColors) then
Result := True;
end else
begin
if (Res > 0) then
Result := True;
end;
end;

procedure WaitLoggedIn(WaitTime: Integer);
var
HPBox: TBox;
begin
HPBox := IntToBox(695, 19, 718, 42);
while not ColorWait(WaitTime, 143319, 10, HPBox) do
Wait(WaitTime);
end;

function FindTPointCluster(Colors: TIntegerArray; Tol: Integer; SortFrom: TPoint; Filter, Trim, MaxDist: Integer; Box: TBox): TPointArray;
var
aPoints: T2DPointArray;
TPA: TPointArray;
hPoints, hColors: Integer;
cError, Len, Match: Integer;
t, r, i, ii: Integer;
begin
MarkTime(t);
SetLength(aPoints, Length(Colors));
hColors := High(Colors);
cError := 0;
r := 0;
for i := 0 to hColors do
begin
if (FindColorsTolerance(TPA, Colors[i], Box.x1, Box.y1, Box.x2, Box.y2, Tol)) then
begin
SortTPAFrom(TPA, SortFrom);
if (Filter <> -1) then
FilterPointsDist(TPA, 0, Filter, SortFrom.x, SortFrom.y);
if (Trim <> -1) and (Length(TPA) > Trim) then
SetLength(TPA, Trim);
aPoints[i - cError] := TPA;
end else
begin
Len := Length(aPoints) - 1;
SetLength(aPoints, Len);
Inc(cError);
end;
if (cError >= 1) then
Exit;
end;
hPoints := High(aPoints);
for i := 0 to High(aPoints[0]) do
begin
Match := 0;
for ii := 1 to hPoints do
begin
if NearbyPointInArray(aPoints[0][i], MaxDist, aPoints[ii]) then
begin
Inc(Match);
if (Match >= hPoints) then
begin
SetLength(Result, r + 1);
Result[r] := aPoints[0][i];
Inc(r);
end;
end else
Break;
end;
end;
SortTPAFrom(Result, SortFrom);
end;

function CheckInvColor(Color: TIntegerArray; Slot, Tol: Integer): Boolean;
var
TPA: TPointArray;
tSlot: TBox;
begin
if not LoggedIn then Exit;
Result := False;
tSlot := InvBox(Slot);
if ExistsItem(Slot) then
begin
TPA := FindTPointCluster(Color, Tol, Point(tSlot.x1, tSlot.y1), -1, -1, 20, tSlot);
Result := (Length(TPA) > 0);
end;
end;

function TabWait(WaitTime, Tab: Integer): Boolean;
var
t: Integer;
begin
if not LoggedIn then Exit;
Result := False;
GameTab(Tab);
MarkTime(t);
repeat
Result := (GetCurrentTab = Tab);
if Result then
Break;
Wait(100+Random(50));
until(TimeFromMark(t) > WaitTime);
end;

procedure Calibrate;
begin
ClickNorth(2);
SetAngle(SRL_ANGLE_HIGH);
SetAngle(SRL_ANGLE_HIGH); // In case of lag
end;

procedure DoRest;
var
EnergyBox: TBox;
i: Integer;
begin
EnergyBox := IntToBox(742, 107, 760, 119);
if not ColorWait(500, 255, 5, EnergyBox) then
Exit;
Currently('Resting...');
SetRest;
MarkTime(i);
repeat
Wait(1000+Random(1000));
if ColorWait(500, 65280, 5, EnergyBox) then
Break;
until(TimeFromMark(i) > 30000);
Wait(3000+Random(1000));
SetRun(True);
end;

function Antiban: Boolean;
begin
if not LoggedIn then Exit;
Result := False;
if UseRest then
DoRest;
FindNormalRandoms;
case Random(1600) of
1: begin Result := True; Currently('Antiban...'); PickUpMouse; end;
2: begin Result := True; Currently('Antiban...'); BoredHuman; Calibrate; end;
3: begin Result := True; Currently('Antiban...'); RandomAngle(1); Calibrate; end;
4: begin Result := True; Currently('Antiban...'); Wait(1000+Random(2500)); end;
5,6: begin Result := True; Currently('Antiban...'); Wait(4000+Random(1000)); end;
7,8,9,10: begin Result := True; Currently('Antiban...'); RandomMovement; Calibrate; end;
end;
end;

procedure SetupPlay;
var
VexBox, KinBox: TBox;
begin
if not LoggedIn then Exit;
VexBox := IntToBox(572, 291, 600, 318);
KinBox := IntToBox(683, 371, 713, 386);
Currently('Setting up player...');
TabWait(1000, tab_EQUIP);
if ColorWaitMulti(1000, [VexColor, KinColor], [VexBox, KinBox], True) then
Currently('Found clan vexillum and ring of kinship!')
else
Error('Equip clan vexillum and ring of kinship!');
TabWait(1000, tab_INV);
if CheckInvColor(PickaxeColor, 1, 5) then
Currently('Found pickaxe in first slot!')
else
Currently('Place pickaxe in first slot of inventory!');
end;

function Teleport(Which: String; Tries: Integer): Boolean;
var
CoordBox, ClanBox: TBox;
Color, i, x, y: Integer;
Area: String;
Clan: Boolean;
begin
if not LoggedIn then Exit;
case Lowercase(Which) of
'clan':
begin
Color := VexColor; CoordBox := IntToBox(572, 291, 600, 318); Clan := True;
Area := 'clan grounds';
end;
'dung':
begin
Color := KinColor; CoordBox := IntToBox(683, 371, 713, 386); Clan := False;
Area := 'daemonheim';
end;
end;
i := 0;
repeat
AntiBan;
Currently('Teleporting to '+ Area +': Attempt '+ IntToStr(i + 1) +'...');
TabWait(1000, tab_EQUIP);
if ColorWait(2000, Color, 10, CoordBox) then
begin
MouseTBox(CoordBox, mouse_right);
Result := WaitOptionMulti(['ele','port'], 2000);
if Result then
begin
if Clan then
begin
ClanBox := IntToBox(223, 402, 298, 411);
if ColorWait(2000, 2169874, 10, ClanBox) then
MouseTBox(ClanBox, mouse_left);
Break;
end;
Break;
end else
begin
GetMousePos(x, y);
MMouse((x+RandomRange(-30,30)), (y-50-Random(50)), 5, 5);
Wait(250+Random(250));
end;
end;
Inc(i);
until(i > Tries);
GameTab(tab_INV);
if Result then
Currently('Teleported to '+ Area +'!')
else
Currently('Failed to teleport to '+ Area +'!');
end;

function AtArea(Which: String; WaitTime: Integer): Boolean;
var
aTPA: T2DPointArray;
TPA: TPointArray;
Color: array of Integer;
t, i: Integer;
Area: String;
begin
if not LoggedIn then Exit;
case Lowercase(Which) of
'clangrounds':
begin
Color := [5264727, 4146883, 3228491, 16303475, 2446158];
Area := 'the clan grounds';
end;
'mine':
begin
Color := [12632256, 8355708, 2511751, 5987161, 65536];
Area := 'the mine';
end;
'dung':
begin
Color := [6251366, 15525876, 10986156, 13550787];
Area := 'daemonheim';
end;
'bank':
begin
Color := [15526372, 14144976, 5263951, 2413294, 9002045, 262643];
Area := 'the bank';
end;
end;
MarkTime(i);
repeat
for t := 20 to 30 do
begin
Currently('Searching for '+ Area +': Tolerance is '+ IntToStr(t) +'...');
TPA := FindTPointCluster(Color, t, Point(MMCX, MMCY), -1, -1, 100, MMBox);
aTPA := SplitTPA(TPA, 100);
if (Length(aTPA) > 0) then
begin
Result := True;
Currently('At '+ Area +'!');
Break;
end;
Wait(200+Random(50));
end;
until(i > WaitTime);
end;

procedure WaitMoving(WaitTime: Integer);
var
t: Integer;
begin
MarkTime(t);
while IsMoving or FlagPresent do
begin
if (TimeFromMark(t) > WaitTime) then
Exit;
Wait(200);
end;
end;

function GetNPCDotColor: Boolean;
var
aTPA: T2DPointArray;
TPA: TPointArray;
Color: array of Integer;
i: Integer;
begin
if not LoggedIn then Exit;
Currently('Grabbing NPC dot color...');
Result := False;
for i := 0 to High(NPC) do
begin
Color := [NPC[i], 65536];
TPA := FindTPointCluster(Color, 5, Point(MMCX, MMCY), -1, -1, 5, MMBox);
aTPA := SplitTPA(TPA, 10);
if (Length(aTPA) > 0) then
begin
Result := True;
NPCColor := NPC[i];
Break;
end;
end;
if Result then
Currently('Found NPC color: '+ IntToStr(NPCColor))
else
Error('NPC color not found! See thread for fix.');
end;

procedure AlignWalking(Which: String; WaitTime: Integer);
var
aTPA: T2DPointArray;
TPA: TPointArray;
CustomMMBox: TBox;
Color, Points: array of Integer;
ArrFilter, i, w, x, y: Integer;
begin
if not LoggedIn then Exit;
case Lowercase(Which) of
'mine':
begin
Color := [NPCColor, 526498]; Points := [647, 68];
ArrFilter := -1; w := 50;
end;
'bank':
begin
Color := [NPCColor, 65536]; Points := [627, 69];
ArrFilter := -1; w := 12;
end;
end;
CustomMMBox := IntToBox(MMX1, (MMCY - 40), (MMCX + w), MMY2);
Currently('Aligning walk path...');
Aligned := False;
MarkTime(i);
repeat
TPA := FindTPointCluster(Color, 10, Point(MMCX, MMCY), ArrFilter, -1, 20, CustomMMBox);
aTPA := SplitTPA(TPA, 10);
if (Length(aTPA) > 0) then
begin
x := MiddleTPA(aTPA[0]).x;
y := MiddleTPA(aTPA[0]).y;
cx := Points[0] - x;
cy := Points[1] - y;
Currently('Altered walk path by: ('+IntToStr(cx)+', '+IntToStr(cy)+')');
Aligned := True;
Break;
end;
until(TimeFromMark(i) > WaitTime);
end;

function WalkTo(Which: String): Boolean;
var
Arr: array of array of array of Integer;
aTPA: T2DPointArray;
TPA: TPointArray;
P: TPoint;
hArr, c, i, t, h: integer;
Current: Boolean;
Area: String;
begin
if not LoggedIn then Exit;
h := 0;
case Lowercase(Which) of
'mine':
begin
SetLength(Arr, Length(ClanToMine));
for i := 0 to High(Arr) do
begin
SetLength(Arr[i], 2);
Arr[i][0] := ClanToMine[i][0];
Arr[i][1] := [ClanToMine[i][1][0] - cx, ClanToMine[i][1][1] - cy];
cx := 0;
cy := 0;
end;
Area := 'mine';
end;
'spot':
begin
SetLength(Arr, 1);
SetLength(Arr[0], 2);
Arr[0][0] := MineToSpot[0];
Arr[0][1] := MineToSpot[1];
Area := 'ores';
end;
'bank':
begin
SetLength(Arr, Length(DungToBank));
for i := 0 to High(Arr) do
begin
SetLength(Arr[i], 2);
Arr[i][0] := DungToBank[i][0];
if Aligned then
h := 17;
Arr[i][1] := [DungToBank[i][1][0] - cx + h, DungToBank[i][1][1] - cy];
cx := 0;
cy := 0;
end;
Area := 'bank';
end;
end;
hArr := High(Arr);
MakeCompass('n');
for c := 0 to hArr do
begin
Current := False;
for i := 0 to 10 do
begin
Currently('Walking to '+ Area +' ('+ IntToStr(c + 1) +' of '+ IntToStr(Length(Arr)) +'): Tolerance is '+ IntToStr(WalkTol + i) +'...');
TPA := FindTPointCluster(Arr[c][0], (WalkTol + i), Point(Arr[c][1][0], Arr[c][1][1]), WalkFilter, WalkTrim, WalkMaxDist, MMBox);
aTPA := SplitTPA(TPA, WalkMaxDist);
if (Length(aTPA) > 0) then
begin
for t := 0 to High(aTPA) do
begin
P := MiddleTPA(aTPA[t]);
if (not rs_OnMinimap(P.x, P.y)) then
Continue;
Mouse(P.x, P.y, 3, 3, mouse_left);
Wait(1000+Random(500));
WaitMoving(15000);
if (c = hArr) then
begin
Result := True;
Exit;
end;
Current := True;
Break;
end;
if Current then
Break;
end;
Wait(100+Random(50));
end;
AntiBan;
end;
end;

function BankOpened: Boolean;
var
Box: TBox;
begin
if not LoggedIn then Exit;
Box := IntToBox(464, 28, 477, 42);
Result := ColorWait(2000, 5005673, 10, Box);
end;

procedure BankAdjust(Min: Integer);
var
TPA: TPointArray;
SymbolColor: array of Integer;
P, Diff, Mid: TPoint;
Dist: Integer;
begin
if not LoggedIn then Exit;
SymbolColor := [2413294, 12632256, 65536];
TPA := FindTPointCluster(SymbolColor, 10, Point(MMCX, MMCY), -1, -1, 10, MMBox);
if (Length(TPA) >= Min) then
begin
P := MiddleTPA(TPA);
Dist := Distance(P.x, P.y, MMCX, MMCY);
if (Dist > 20) then
begin
Diff := Point(P.x - MMCX, P.y - MMCY);
Mid := Point(((Diff.x / 2) + MMCX), ((Diff.y / 2) + MMCY));
Mouse(Mid.x, Mid.y, 2, 2, mouse_left);
Currently('Moving closer to bank...');
Wait(500+Random(500));
WaitMoving(5000);
Exit;
end else
begin
Currently('Close enough to bank...');
Exit;
end;
end else
Currently('Could not find bank symbol...');
end;

function OpenDungBank: Boolean;
var
aTPA: T2DPointArray;
TPA: TPointArray;
P: TPoint;
c, t, i: Integer;
begin
if not LoggedIn then Exit;
BankAdjust(4);
KeyDown(VK_DOWN);
Wait(500+Random(150));
KeyUp(VK_DOWN);
TabWait(1000, tab_INV);
for c := 15 to 25 do
begin
Currently('Opening bank: Tolerance is '+ IntToStr(c) +'...');
TPA := FindTPointCluster(BankerColor, c, Point(MSCX, MSCY), -1, 1000, 50, MSBox);
aTPA := TPAToATPA(TPA, 60);
if (Length(aTPA) > 0) then
begin
SortATPAFromMidPoint(aTPA, Point((MSCX - 150), MSCY));
for t := 0 to High(aTPA) do
begin
P := MiddleTPA(aTPA[t]);
MMouse(P.x, P.y, 3, 3);
Wait(300+Random(100));
if WaitUptextMulti(['remen', 'nnik', 'anker'], 500) then
begin
ClickMouse2(mouse_right);
if WaitOption('ank Fr', 1000) then
begin
Wait(500+Random(500));
MarkTime(i);
repeat
Result := BankOpened or PinScreen;
if Result then
Break;
Wait(200+Random(50));
until(TimeFromMark(i) > 5000);
if Result then
begin
Currently('Bank opened!');
Exit;
end else
Currently('Failed to open bank!');
end;
end;
if (t >= 2) then
Break;
end;
end;
end;
if not Result then
Currently('Failed to open bank!');
end;

function DoBanking(Tries: Integer): Boolean;
var
Click, cTries, c, i: Integer;
Current: String;
Left: Boolean;
begin
if not LoggedIn then Exit;
if (PinScreen and (UserPin <> '')) then
InPin(UserPin);
if BankOpened then
begin
if (InvCount > 1) then
begin
Current := 'Depositing ores';
Click := mouse_right;
Left := False;
cTries := Round(Tries / 2);
c := 0;
repeat
if (InvCount < 2) then
Break;
if (c >= cTries) then
begin
Current := 'Depositing the stragglers';
Click := mouse_left;
Left := True;
end;
Currently(Current +'...');
for i := 2 to 28 do
begin
if (InvCount < 2) then
Break;
if ExistsItem(i) then
begin
MouseItem(i, Click);
if not Left then
begin
if WaitOption('ll', 1000) then
begin
Result := True;
Wait(750+Random(500));
if Result then
begin
c := (cTries - 1);
Break;
end else
Continue;
end;
end;
Wait(400+random(100));
end;
end;
Inc(c);
until((InvCount < 2) or (c >= Tries));
Wait(1000+Random(500));
end;
if (InvCount > 1) then
Error('Failed to bank some items!')
else
begin
Currently('Ores banked!');
Inc(LoadsDone);
CloseBank;
Calibrate;
end;
end else
Currently('Failed to open bank!');
end;

function ExcludeColors(ExColors, ExTol: array of Integer; aTPA: T2DPointArray): Boolean;
var
Count: array of Integer;
Box: TBox;
hColors, i: Integer;
begin
Result := False;
SetLength(Count, lExColors);
Box := GetATPABounds(aTPA);
hColors := (lExColors - 1)
for i := 0 to hColors do
begin
Count[i] := CountColorTolerance(ExColors[i], Box.x1, Box.y1, Box.x2, Box.y2, ExTol[i]);
if (Count[i] >= 3) then
begin
Result := True;
Exit;
end;
end;
end;

function WaitMessage(WaitTime: Integer; Text: String): Boolean;
var
t: Integer;
begin
Result := False;
FixChat;
MarkTime(t);
repeat
Result := (Pos(Text, GetBlackChatMessage) <> 0);
if Result then
Exit;
Wait(20);
until(TimeFromMark(t) > WaitTime);
end;

function WaitMessageMulti(WaitTime: Integer; Text: TStringArray): Boolean;
var
EachWait, hText, t, i: Integer;
begin
Result := False;
hText := High(Text);
EachWait := Round(150 / hText);
FixChat;
MarkTime(t);
repeat
for i := 0 to hText do
begin
Result := WaitMessage(EachWait, Text[i]);
if Result then
Exit;
end;
until(TimeFromMark(t) > WaitTime);
end;

function MineOre: Boolean;
var
Tries, c, i: Integer;
aTPA: T2DPointArray;
TPA: TPointArray;
P: TPoint;
begin
if not LoggedIn then Exit;
for i := 5 to 15 do
begin
AntiBan;
Currently('Searching for ore: Tolerance is '+ IntToStr(i) +'...');
Tries := 0;
repeat
TPA := FindTPointCluster(OreColor, i, Point(MSCX, MSCY), -1, -1, 12, MSBox);
aTPA := SplitTPAEx(TPA, 12, 12);
if (Length(aTPA) > 0) then
begin
for c := 0 to High(aTPA) do
begin
if not ExcludeColors(ExColors, ExTol, aTPA) then
begin
P := MiddleTPA(aTPA[c]);
MMouse(P.x, P.y, 3, 3);
Wait(300+Random(100));
if WaitUptext(OreUptext, 500) then
begin
ClickMouse2(mouse_right);
Result := WaitOption('ine', 1000);
if Result then
begin
Currently('Ore found!');
Wait(300+Random(100));
while IsMoving do
Wait(150);
MarkTime(StartMine);
//WaitMoving(2500);
Exit;
end else
begin
{if PickupDrops then
begin
if WaitOption('ake', 1000) then
begin
Currently('Picking up an ore...');
Inc(OresPicked);
end;
end;}
end;
end;
end else
Currently('Wrong ore found...');
if (c >= 2) then
Break;
end;
end;
Inc(Tries);
until(Tries > 1);
end;
end;

function HopWorld: Boolean;
var
aTPA: T2DPointArray;
TPA: TPointArray;
P: TPoint;
PlayerBox, ConfirmBox, SkipBox, PlayBox, RefreshBox, WorldBox, SortBox, StarBox: TBox;
xSlide, ySlide, Rand, haTPA, h, t, i: Integer;
begin
Result := False;
Currently('Hopping to a different world...');
if LoggedIn then
ExitToLobby;
Wait(500+Random(500));
ConfirmBox := IntToBox(288, 420, 478, 443);
SkipBox := IntToBox(493, 424, 565, 437);
PlayerBox := IntToBox(74, 27, 93, 46);
PlayBox := IntToBox(263, 449, 503, 473);
RefreshBox := IntToBox(76, 65, 101, 90);
WorldBox := IntToBox(167, 24, 263, 47);
SortBox := IntToBox(122, 184, 130, 193);
StarBox := IntToBox(92, 199, 115, 436);
xSlide := RandomRange(684, 697);
ySlide := RandomRange(227, 409);
MarkTime(t);
repeat
if not ColorWait(1000, 6314553, 5, PlayerBox) then
begin
if ColorWait(1000, 348683, 5, ConfirmBox) then
begin
MouseTBox(SkipBox, mouse_left);
Wait(500+Random(500));
Break;
end;
end else
Break;
Wait(500+Random(500));
until(TimeFromMark(t) > 10000);
MarkTime(i);
repeat
if not ColorWait(1000, 16645505, 5, RefreshBox) then
begin
MouseTBox(WorldBox, mouse_left);
Wait(500+Random(500));
Break;
end else
Break;
Wait(500);
until(TimeFromMark(i) > 10000);
MarkTime(h);
repeat
MouseTBox(SortBox, mouse_left);
Wait(500+Random(500));
Mouse(xSlide, ySlide, 0, 0, mouse_left);
Wait(500+Random(500));
FindColorsTolerance(TPA, 11250603, StarBox.x1, StarBox.y1, StarBox.x2, StarBox.y2, 5);
aTPA := TPAToATPAEx(TPA, 12, 12);
if (Length(aTPA) > 0) then
begin
haTPA := High(aTPA);
Rand := Random(haTPA);
P := MiddleTPA(aTPA[Rand]);
Mouse(P.x, P.y, 1, 1, mouse_left);
Result := True;
Break;
end;
until(TimeFromMark(h) > 10000);
if Result then
begin
MouseTBox(PlayBox, mouse_left);
Wait(2000+Random(2000));
WaitLoggedIn(2000);
end;
end;

procedure ToMineProc;
var
t, i: Integer;
begin
if not InvFull then
begin
if Teleport('clan', 2) then
begin
MarkTime(t);
Wait(3500+Random(1000));
repeat
if AtArea('clangrounds', 1000) then
Break;
Wait(500+Random(250));
Antiban;
until(TimeFromMark(t) > 10000);
end;
if AtArea('clangrounds', 2000) then
begin
GetNPCDotColor;
AlignWalking('mine', 5000);
WalkTo('mine');
MarkTime(i);
repeat
if AtArea('mine', 1000) then
Break;
Wait(500+Random(250));
Antiban;
until(TimeFromMark(i) > 5000);
end;
if AtArea('mine', 2000) then
begin
WalkTo('spot');
Wait(500+Random(250));
end;
end;
end;

procedure MineOreProc;
var
MinWait, sCount, eCount: Integer;
begin
if AtArea('mine', 2000) then
begin
Stolen := 0;
MinWait := 3000;
sCount := InvCount;
repeat
if (Stolen >= HopCount) and HopIfTaken then
begin
if not HopWorld then
Error('Failed to hop world!');
end;
if MineOre then
begin
Currently('Mining ore...');
repeat
if WaitMessage(250, 'currently') then
begin
Inc(Stolen);
Break;
end;
eCount := InvCount;
if (eCount > sCount) then
begin
if CheckInvColor(InvOre, eCount, 5) then
begin
AvgMine := (AvgMine + (TimeFromMark(StartMine) + 500)) / 2;
MineWait := (MineWait + AvgMine) / 2;
if (MineWait < MinWait) then
MineWait := MinWait + (MineWait / 3);
Currently('Ore mined!');
Inc(OresMined);
Break;
end;
end else
begin
if WaitMessageMulti(150, ['manage', 'level', 'found']) then
begin
Inc(Stolen);
Break;
end;
end;
Wait(100+Random(50));
AntiBan;
until(TimeFromMark(StartMine) > MineWait);
sCount := InvCount;
ProgressReport;
end;
Wait(100+Random(50));
until(InvFull);
end;
end;

procedure ToBankProc;
var
t, i, c: Integer;
begin
if InvFull then
begin
if Teleport('dung', 2) then
begin
MarkTime(t);
Wait(6000+Random(3000));
repeat
if AtArea('dung', 1000) then
Break;
Wait(500+Random(250));
Antiban;
until(TimeFromMark(t) > 12000);
end;
if AtArea('dung', 2000) then
begin
GetNPCDotColor;
AlignWalking('bank', 5000);
WalkTo('bank');
MarkTime(i);
repeat
if AtArea('bank', 1000) then
Break;
Wait(500+Random(250));
Antiban;
until(TimeFromMark(i) > 5000);
end;
if AtArea('bank', 2000) then
begin
if (InvCount > 1) then
begin
MarkTime(c);
repeat
if OpenDungBank then
DoBanking(4);
Wait(500+Random(250));
AntiBan;
until((InvCount < 2) or (TimeFromMark(c) > 20000));
end;
end;
end;
end;

procedure ToMineLoop(Tries: Integer);
var
i: Integer;
begin
if InvFull then
Exit;
i := 0;
repeat
if (i > 0) then
begin
Currently('Trying again...');
Calibrate;
end;
ToMineProc;
Inc(i);
until(AtArea('mine', 2000) or (i > Tries));
if not AtArea('mine', 2000) then
Error('Walking to mine messed up!');
end;

procedure MineOreLoop(Tries: Integer);
var
i: Integer;
begin
if InvFull then
Exit;
i := 0;
repeat
if (i > 0) then
begin
Currently('Trying again...');
Calibrate;
end;
MineOreProc;
Inc(i);
until(InvFull or (i > Tries));
if not InvFull then
Error('Ores not found!');
end;

procedure ToBankLoop(Tries: Integer);
var
i: Integer;
begin
if not InvFull then
Exit;
i := 0;
repeat
if (i > 0) then
begin
Currently('Trying again...');
Calibrate;
end;
ToBankProc;
Inc(i);
until((InvCount < 2) or (i > Tries));
if (InvCount > 1) then
Error('Banking messed up!');
end;

procedure ProgressReport;
begin
ClearDebug;
WriteLn(' Runaways v'+ Version +'!');
WriteLn('<=----------- Rimmington Tele-Banker ----------=>');
WriteLn('| Running for: '+ TimeRunning);
WriteLn('| Ores Mined: '+ IntToStr(OresMined) +' '+ OreToMine);
{if PickupDrops then
WriteLn('| Picked Up: '+ IntToStr(OresPicked) +' ores');}
WriteLn('| Banked: '+ IntToStr(LoadsDone) +' loads');
WriteLn('| Mining XP gained: '+ IntToStr(Round(OresMined * OreXP)) +' XP');
WriteLn('<=---------------------------------------------=>');
end;

procedure SetupScript;
begin
ClearDebug;
OresMined := 0;
OresPicked := 0;
Currently('Setting up Script...');
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 21;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

setupSRL();
IgnoreBar;
DeclarePlayers;
DeclareColors;
ActivateClient;
if not LoggedIn then
LoginPlayer;
WaitLoggedIn(2000);
ProgressReport;
end;

begin
SetupScript;
MouseSpeed := (14+Random(6));
SetupPlay;
SetupVars;
SetChat('all', 0);
SetChat('hide', 1);
Calibrate;
MarkTime(t);
repeat
ToMineLoop(2);
if (Loop >= 4) then
begin
Calibrate;
Loop := 0;
end;
MineOreLoop(2);
ToBankLoop(2);
ProgressReport;
MouseSpeed := (14 + Random(6));
Inc(Loop);
until((TimeToRun <> 0) and (TimeFromMark(t) > (TimeToRun * (60 * 1000))));
end.

Esparno

2012-07-15 22:50:55

From: Tlachtli
If you've followed all of Brandon's steps, most of the errors you're getting are script-side and in my experience are due mostly to outdated declarations. With some finagling you can get most scripts working again.


I don't know about that, unless every script I have was written with the same thing causing the error, because none of them work.

Plus they all give the exact same message.

EDIT: it seems to be stemming from smartparams.simba

EDIT2: I tested the script you posted and get

Object DTM Extension: Failed to grab remote extension.
ODTM Updater Enabled!
[Warning] C:\Useful Programs\Simba2\Scripts\rimmington miner.simba(1:1): Calculation always evaluates to False at line 0
[Error] C:\Useful Programs\Simba2\Scripts\rimmington miner.simba(1261:3): Unknown identifier 'IgnoreBar' at line 1260
Compiling failed.

Tyler C S

2012-07-15 22:52:27

I am sorry if this has been asked before, but how do I fix this error?

Compiled successfully in 1404 ms.
SRL Compiled in 15 msec
Error: Exception: Access violation at line 501
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, 3, 4]

I am running as admin and have ran from the C: directory also. Any help will be greatly appreciated, in the mean time off to watch more YoHoJo videos :D

Brandon

2012-07-15 22:55:26

From: Esparno
I don't know about that, unless every script I have was written with the same thing causing the error, because none of them work.

Plus they all give the exact same message.

EDIT: it seems to be stemming from smartparams.simba


Post your script.. I will look at it. If it's bad I'm going to post the exact same unedited script.

Edit: I tested the script Iinversion posted. It works just fine.. You did not setup correctly. I even posted my entire simba folder. I'm not sure how you messed that up.

iiNveRsioN

2012-07-15 22:56:04

From: Esparno
I don't know about that, unless every script I have was written with the same thing causing the error, because none of them work.

Plus they all give the exact same message.

EDIT: it seems to be stemming from smartparams.simba


Use the script I posted above your post. It works 100% and will eliminate any script causing error you might get, I have been running it for the past hour on an account. Provided you have everything else correct it will work.

ThatGuy727

2012-07-15 23:07:25

nvm i figured out how to modify the script for it to work

Leonardo Da Vinci

2012-07-15 23:11:33

From: iiNveRsioN
I have added the fix to the script and it works 100% for me. It will work for you too provided you have done the fix to your files. You can use it as your test or whatever.



{=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=|
|=----------------------------------------------------------------------------=|
|= =|
|= Rimmington Tele-Banker v0.7 =|
|= =|
|= by: Runaway =|
|= =|
|=----------------------------------------------------------------------------=|
|= =|
|= This script mines any ore at the Rimmington mine. It uses the =|
|= unlimited teleports supplied by the dungeoneering ring and the =|
|= clan vexillum to bank and return to the mine. =|
|= =|
|= How to use: =|
|= =|
|= 1) Fill out the setup below. =|
|= =|
|= 2) Place your character anywhere. =|
|= =|
|= 3) Equip both a clan vexillum and a ring of kinship. =|
|= =|
|= 4) Have a pickaxe in the first slot of your inventory. =|
|= =|
|= 5) Hit run! =|
|= =|
|= Requirements: =|
|= =|
|= - None! =|
|= =|
|=----------------------------------------------------------------------------=|
|=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=}

program RimmingtonTeleBanker;

{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

var
ClanToMine: array[0..3] of array[0..1] of array of Integer;
DungToBank: array[0..1] of array[0..1] of array of Integer;
MineToSpot: array[0..1] of array of Integer;
NPC, InvOre, OreColor, CopperColor, TinColor, ClayColor, IronColor, GoldColor,
BankerColor, PickaxeColor, ExColors, ExTol: array of Integer;
cx, cy, t, Loop, OresMined, OresPicked, LoadsDone, lExColors, NPCColor,
RockColor, VexColor, KinColor, MineWait, AvgMine, StartMine, Stolen, HopCount: Integer;
OreUptext: String;
OreXP: Extended;
Aligned: Boolean;

{=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=|
|=-------------------------------=BEGIN-SETUP=--------------------------------=|
|=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=}

const
OreToMine = 'iron'; // Valid choices: copper, tin, iron, clay, gold
UserPin = ''; // Leave blank if not using a pin
TimeToRun = 360; // Minutes to run the script for (0 to run until stopped)
HopIfTaken = False; // True to hop worlds if the spot is taken
//PickupDrops = False; // True to pickup ores on the ground
UseRest = True; // Rest when low energy

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
Name := ''; // Player username
Pass := ''; // Player password
BoxRewards := ['XP', 'ostume', 'mote', 'oins', 'une', 'ssence'];
LampSkill := Skill_MINING;
Active := True;
end;
end;

procedure DeclareColors;
begin
// Only update if NPCs cannot be located \\
NPC := [2162687, 1900543, 1783370, 1702399, 1701113, 1505535, 1437694, 1374705, 1372665, 1244415, 1179647, 1179644, 1043199, 981753, 916991, 786430, 783103, 777964, 773595, 720883, 718847, 717815, 717567, 654579, 653311, 651775, 648667, 645348, 640979, 589823, 589311, 588280, 587000, 584957, 584171, 583916, 579817, 579802, 578776, 575448, 574407, 522732, 458751, 450798, 393210, 391151, 327667, 326911, 326385, 325112, 323558, 322788, 319972, 318418, 317648, 315603, 314049, 313279, 257009, 255470, 196604, 127367, 65522, 65233, 63478, 61670, 61439, 61150, 60651, 59355, 56781, 55511, 55014, 53474, 51142, 50645, 49105, 47302];

{=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=|
|=-------------------------------=END-SETUP=----------------------------------=|
|=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=}

BankerColor := [2968144, 5408402, 8609098]; // Main color first
PickaxeColor := [1517364, 2111304];

RockColor := 7834010;
CopperColor := [RockColor, 4951024];
TinColor := [RockColor, 11513783];
ClayColor := [RockColor, 8174044];
IronColor := [RockColor, 2765644];
GoldColor := [RockColor, 5165309];

ClanToMine[0][0] := [5068118, 3361105, 2965055, 2508359]; // Colors
ClanToMine[0][1] := [675, 128]; // Sort point
ClanToMine[1][0] := [5068118, 2177087, 2575706, 2771553];
ClanToMine[1][1] := [628, 144];
ClanToMine[2][0] := [2504253, 2967881, 2243141];
ClanToMine[2][1] := [623, 139];
ClanToMine[3][0] := [2114652, 5921623, 2444907];
ClanToMine[3][1] := [632, 139];

DungToBank[0][0] := [15198705, 10132641, 13619672, 15461616]; // Colors
DungToBank[0][1] := [638, 38]; // Sort point
DungToBank[1][0] := [15920097, 15922418, 13223098];
DungToBank[1][1] := [619, 36];

VexColor := 9784898;
KinColor := 3162439;

MMBox := IntToBox(MMX1, MMY1, MMX2, MMY2);
MSBox := IntToBox(MSX1, MSY1, MSX2, MSY2);
end;

const
Version = '0.7';
WalkTol = 30;
WalkMaxDist = 25;
WalkFilter = 25;
WalkTrim = 1000;

procedure ProgressReport; forward;

procedure Currently(Doing: String);
begin
Status(Doing);
DebugLn(Doing);
end;

procedure Error(Reason: String);
begin
Currently(Reason);
WriteLn('ERROR: '+ Reason);
Logout;
TerminateScript;
end;

procedure SetupVars;
begin
Currently('Gathering ore data...');
OreXP := 0;
if (OreToMine = '') then
Error('Enter the ore you want to mine!');
case Lowercase(OreToMine) of
'copper':
begin
OreXP := 17.5; OreUptext := 'per ore'; OreColor := CopperColor;
ExColors := []; ExTol := []; lExColors := Length(ExColors);
InvOre := [3697338, 3558753];
MineToSpot[0] := [3426135, 2511751]; // Colors
MineToSpot[1] := [604, 101]; // Sort point
end;
'tin':
begin
OreXP := 17.5; OreUptext := 'in ore'; OreColor := TinColor;
ExColors := []; ExTol := []; lExColors := Length(ExColors);
InvOre := [6645354, 3558753];
MineToSpot[0] := [2905180, 5987161];
MineToSpot[1] := [623, 114];
end;
'iron':
begin
OreXP := 35; OreUptext := 'ron ore'; OreColor := IronColor;
ExColors := [CopperColor[1]]; ExTol := [4]; lExColors := Length(ExColors);
InvOre := [1581111, 4020076];
MineToSpot[0] := [3294552, 5987161];
MineToSpot[1] := [613, 84];
end;
'clay':
begin
OreXP := 5; OreUptext := 'lay'; OreColor := ClayColor;
ExColors := [IronColor[1], GoldColor[1]]; ExTol := [3, 3]; lExColors := Length(ExColors);
InvOre := [5010055, 4680318];
MineToSpot[0] := [3163472, 2511751];
MineToSpot[1] := [645, 76];
end;
'gold':
begin
OreXP := 65; OreUptext := 'old ore'; OreColor := GoldColor;
ExColors := []; ExTol := []; lExColors := Length(ExColors);
InvOre := [1675960, 3558753];
MineToSpot[0] := [2905180, 5987161];
MineToSpot[1] := [644, 110];
end;
end;
if (OreXP = 0) then
Error('Invalid ore entered!');
MineWait := 5000;
AvgMine := MineWait;
HopCount := 15;
end;

function ColorWait(WaitTime, Color, Tol: Integer; Box: TBox): Boolean;
var
i, x, y: Integer;
begin
if not LoggedIn then Exit;
Result := False;
MarkTime(i);
repeat
Result := FindColorTolerance(x, y, Color, Box.x1, Box.y1, Box.x2, Box.y2, Tol);
if Result then
Break;
Wait(100+Random(50));
until(TimeFromMark(i) > WaitTime);
end;

function ColorWaitMulti(WaitTime: Integer; Colors: TIntegerArray; Box: TBoxArray; Strict: Boolean): Boolean;
var
hColors, Res, i: Integer;
begin
if not LoggedIn then Exit;
Result := False;
Res := 0;
hColors := High(Colors);
for i := 0 to hColors do
begin
if ColorWait(WaitTime, Colors[i], 15, Box[i]) then
Inc(Res);
end;
if Strict then
begin
if (Res > hColors) then
Result := True;
end else
begin
if (Res > 0) then
Result := True;
end;
end;

procedure WaitLoggedIn(WaitTime: Integer);
var
HPBox: TBox;
begin
HPBox := IntToBox(695, 19, 718, 42);
while not ColorWait(WaitTime, 143319, 10, HPBox) do
Wait(WaitTime);
end;

function FindTPointCluster(Colors: TIntegerArray; Tol: Integer; SortFrom: TPoint; Filter, Trim, MaxDist: Integer; Box: TBox): TPointArray;
var
aPoints: T2DPointArray;
TPA: TPointArray;
hPoints, hColors: Integer;
cError, Len, Match: Integer;
t, r, i, ii: Integer;
begin
MarkTime(t);
SetLength(aPoints, Length(Colors));
hColors := High(Colors);
cError := 0;
r := 0;
for i := 0 to hColors do
begin
if (FindColorsTolerance(TPA, Colors[i], Box.x1, Box.y1, Box.x2, Box.y2, Tol)) then
begin
SortTPAFrom(TPA, SortFrom);
if (Filter <> -1) then
FilterPointsDist(TPA, 0, Filter, SortFrom.x, SortFrom.y);
if (Trim <> -1) and (Length(TPA) > Trim) then
SetLength(TPA, Trim);
aPoints[i - cError] := TPA;
end else
begin
Len := Length(aPoints) - 1;
SetLength(aPoints, Len);
Inc(cError);
end;
if (cError >= 1) then
Exit;
end;
hPoints := High(aPoints);
for i := 0 to High(aPoints[0]) do
begin
Match := 0;
for ii := 1 to hPoints do
begin
if NearbyPointInArray(aPoints[0][i], MaxDist, aPoints[ii]) then
begin
Inc(Match);
if (Match >= hPoints) then
begin
SetLength(Result, r + 1);
Result[r] := aPoints[0][i];
Inc(r);
end;
end else
Break;
end;
end;
SortTPAFrom(Result, SortFrom);
end;

function CheckInvColor(Color: TIntegerArray; Slot, Tol: Integer): Boolean;
var
TPA: TPointArray;
tSlot: TBox;
begin
if not LoggedIn then Exit;
Result := False;
tSlot := InvBox(Slot);
if ExistsItem(Slot) then
begin
TPA := FindTPointCluster(Color, Tol, Point(tSlot.x1, tSlot.y1), -1, -1, 20, tSlot);
Result := (Length(TPA) > 0);
end;
end;

function TabWait(WaitTime, Tab: Integer): Boolean;
var
t: Integer;
begin
if not LoggedIn then Exit;
Result := False;
GameTab(Tab);
MarkTime(t);
repeat
Result := (GetCurrentTab = Tab);
if Result then
Break;
Wait(100+Random(50));
until(TimeFromMark(t) > WaitTime);
end;

procedure Calibrate;
begin
ClickNorth(2);
SetAngle(SRL_ANGLE_HIGH);
SetAngle(SRL_ANGLE_HIGH); // In case of lag
end;

procedure DoRest;
var
EnergyBox: TBox;
i: Integer;
begin
EnergyBox := IntToBox(742, 107, 760, 119);
if not ColorWait(500, 255, 5, EnergyBox) then
Exit;
Currently('Resting...');
SetRest;
MarkTime(i);
repeat
Wait(1000+Random(1000));
if ColorWait(500, 65280, 5, EnergyBox) then
Break;
until(TimeFromMark(i) > 30000);
Wait(3000+Random(1000));
SetRun(True);
end;

function Antiban: Boolean;
begin
if not LoggedIn then Exit;
Result := False;
if UseRest then
DoRest;
FindNormalRandoms;
case Random(1600) of
1: begin Result := True; Currently('Antiban...'); PickUpMouse; end;
2: begin Result := True; Currently('Antiban...'); BoredHuman; Calibrate; end;
3: begin Result := True; Currently('Antiban...'); RandomAngle(1); Calibrate; end;
4: begin Result := True; Currently('Antiban...'); Wait(1000+Random(2500)); end;
5,6: begin Result := True; Currently('Antiban...'); Wait(4000+Random(1000)); end;
7,8,9,10: begin Result := True; Currently('Antiban...'); RandomMovement; Calibrate; end;
end;
end;

procedure SetupPlay;
var
VexBox, KinBox: TBox;
begin
if not LoggedIn then Exit;
VexBox := IntToBox(572, 291, 600, 318);
KinBox := IntToBox(683, 371, 713, 386);
Currently('Setting up player...');
TabWait(1000, tab_EQUIP);
if ColorWaitMulti(1000, [VexColor, KinColor], [VexBox, KinBox], True) then
Currently('Found clan vexillum and ring of kinship!')
else
Error('Equip clan vexillum and ring of kinship!');
TabWait(1000, tab_INV);
if CheckInvColor(PickaxeColor, 1, 5) then
Currently('Found pickaxe in first slot!')
else
Currently('Place pickaxe in first slot of inventory!');
end;

function Teleport(Which: String; Tries: Integer): Boolean;
var
CoordBox, ClanBox: TBox;
Color, i, x, y: Integer;
Area: String;
Clan: Boolean;
begin
if not LoggedIn then Exit;
case Lowercase(Which) of
'clan':
begin
Color := VexColor; CoordBox := IntToBox(572, 291, 600, 318); Clan := True;
Area := 'clan grounds';
end;
'dung':
begin
Color := KinColor; CoordBox := IntToBox(683, 371, 713, 386); Clan := False;
Area := 'daemonheim';
end;
end;
i := 0;
repeat
AntiBan;
Currently('Teleporting to '+ Area +': Attempt '+ IntToStr(i + 1) +'...');
TabWait(1000, tab_EQUIP);
if ColorWait(2000, Color, 10, CoordBox) then
begin
MouseTBox(CoordBox, mouse_right);
Result := WaitOptionMulti(['ele','port'], 2000);
if Result then
begin
if Clan then
begin
ClanBox := IntToBox(223, 402, 298, 411);
if ColorWait(2000, 2169874, 10, ClanBox) then
MouseTBox(ClanBox, mouse_left);
Break;
end;
Break;
end else
begin
GetMousePos(x, y);
MMouse((x+RandomRange(-30,30)), (y-50-Random(50)), 5, 5);
Wait(250+Random(250));
end;
end;
Inc(i);
until(i > Tries);
GameTab(tab_INV);
if Result then
Currently('Teleported to '+ Area +'!')
else
Currently('Failed to teleport to '+ Area +'!');
end;

function AtArea(Which: String; WaitTime: Integer): Boolean;
var
aTPA: T2DPointArray;
TPA: TPointArray;
Color: array of Integer;
t, i: Integer;
Area: String;
begin
if not LoggedIn then Exit;
case Lowercase(Which) of
'clangrounds':
begin
Color := [5264727, 4146883, 3228491, 16303475, 2446158];
Area := 'the clan grounds';
end;
'mine':
begin
Color := [12632256, 8355708, 2511751, 5987161, 65536];
Area := 'the mine';
end;
'dung':
begin
Color := [6251366, 15525876, 10986156, 13550787];
Area := 'daemonheim';
end;
'bank':
begin
Color := [15526372, 14144976, 5263951, 2413294, 9002045, 262643];
Area := 'the bank';
end;
end;
MarkTime(i);
repeat
for t := 20 to 30 do
begin
Currently('Searching for '+ Area +': Tolerance is '+ IntToStr(t) +'...');
TPA := FindTPointCluster(Color, t, Point(MMCX, MMCY), -1, -1, 100, MMBox);
aTPA := SplitTPA(TPA, 100);
if (Length(aTPA) > 0) then
begin
Result := True;
Currently('At '+ Area +'!');
Break;
end;
Wait(200+Random(50));
end;
until(i > WaitTime);
end;

procedure WaitMoving(WaitTime: Integer);
var
t: Integer;
begin
MarkTime(t);
while IsMoving or FlagPresent do
begin
if (TimeFromMark(t) > WaitTime) then
Exit;
Wait(200);
end;
end;

function GetNPCDotColor: Boolean;
var
aTPA: T2DPointArray;
TPA: TPointArray;
Color: array of Integer;
i: Integer;
begin
if not LoggedIn then Exit;
Currently('Grabbing NPC dot color...');
Result := False;
for i := 0 to High(NPC) do
begin
Color := [NPC[i], 65536];
TPA := FindTPointCluster(Color, 5, Point(MMCX, MMCY), -1, -1, 5, MMBox);
aTPA := SplitTPA(TPA, 10);
if (Length(aTPA) > 0) then
begin
Result := True;
NPCColor := NPC[i];
Break;
end;
end;
if Result then
Currently('Found NPC color: '+ IntToStr(NPCColor))
else
Error('NPC color not found! See thread for fix.');
end;

procedure AlignWalking(Which: String; WaitTime: Integer);
var
aTPA: T2DPointArray;
TPA: TPointArray;
CustomMMBox: TBox;
Color, Points: array of Integer;
ArrFilter, i, w, x, y: Integer;
begin
if not LoggedIn then Exit;
case Lowercase(Which) of
'mine':
begin
Color := [NPCColor, 526498]; Points := [647, 68];
ArrFilter := -1; w := 50;
end;
'bank':
begin
Color := [NPCColor, 65536]; Points := [627, 69];
ArrFilter := -1; w := 12;
end;
end;
CustomMMBox := IntToBox(MMX1, (MMCY - 40), (MMCX + w), MMY2);
Currently('Aligning walk path...');
Aligned := False;
MarkTime(i);
repeat
TPA := FindTPointCluster(Color, 10, Point(MMCX, MMCY), ArrFilter, -1, 20, CustomMMBox);
aTPA := SplitTPA(TPA, 10);
if (Length(aTPA) > 0) then
begin
x := MiddleTPA(aTPA[0]).x;
y := MiddleTPA(aTPA[0]).y;
cx := Points[0] - x;
cy := Points[1] - y;
Currently('Altered walk path by: ('+IntToStr(cx)+', '+IntToStr(cy)+')');
Aligned := True;
Break;
end;
until(TimeFromMark(i) > WaitTime);
end;

function WalkTo(Which: String): Boolean;
var
Arr: array of array of array of Integer;
aTPA: T2DPointArray;
TPA: TPointArray;
P: TPoint;
hArr, c, i, t, h: integer;
Current: Boolean;
Area: String;
begin
if not LoggedIn then Exit;
h := 0;
case Lowercase(Which) of
'mine':
begin
SetLength(Arr, Length(ClanToMine));
for i := 0 to High(Arr) do
begin
SetLength(Arr[i], 2);
Arr[i][0] := ClanToMine[i][0];
Arr[i][1] := [ClanToMine[i][1][0] - cx, ClanToMine[i][1][1] - cy];
cx := 0;
cy := 0;
end;
Area := 'mine';
end;
'spot':
begin
SetLength(Arr, 1);
SetLength(Arr[0], 2);
Arr[0][0] := MineToSpot[0];
Arr[0][1] := MineToSpot[1];
Area := 'ores';
end;
'bank':
begin
SetLength(Arr, Length(DungToBank));
for i := 0 to High(Arr) do
begin
SetLength(Arr[i], 2);
Arr[i][0] := DungToBank[i][0];
if Aligned then
h := 17;
Arr[i][1] := [DungToBank[i][1][0] - cx + h, DungToBank[i][1][1] - cy];
cx := 0;
cy := 0;
end;
Area := 'bank';
end;
end;
hArr := High(Arr);
MakeCompass('n');
for c := 0 to hArr do
begin
Current := False;
for i := 0 to 10 do
begin
Currently('Walking to '+ Area +' ('+ IntToStr(c + 1) +' of '+ IntToStr(Length(Arr)) +'): Tolerance is '+ IntToStr(WalkTol + i) +'...');
TPA := FindTPointCluster(Arr[c][0], (WalkTol + i), Point(Arr[c][1][0], Arr[c][1][1]), WalkFilter, WalkTrim, WalkMaxDist, MMBox);
aTPA := SplitTPA(TPA, WalkMaxDist);
if (Length(aTPA) > 0) then
begin
for t := 0 to High(aTPA) do
begin
P := MiddleTPA(aTPA[t]);
if (not rs_OnMinimap(P.x, P.y)) then
Continue;
Mouse(P.x, P.y, 3, 3, mouse_left);
Wait(1000+Random(500));
WaitMoving(15000);
if (c = hArr) then
begin
Result := True;
Exit;
end;
Current := True;
Break;
end;
if Current then
Break;
end;
Wait(100+Random(50));
end;
AntiBan;
end;
end;

function BankOpened: Boolean;
var
Box: TBox;
begin
if not LoggedIn then Exit;
Box := IntToBox(464, 28, 477, 42);
Result := ColorWait(2000, 5005673, 10, Box);
end;

procedure BankAdjust(Min: Integer);
var
TPA: TPointArray;
SymbolColor: array of Integer;
P, Diff, Mid: TPoint;
Dist: Integer;
begin
if not LoggedIn then Exit;
SymbolColor := [2413294, 12632256, 65536];
TPA := FindTPointCluster(SymbolColor, 10, Point(MMCX, MMCY), -1, -1, 10, MMBox);
if (Length(TPA) >= Min) then
begin
P := MiddleTPA(TPA);
Dist := Distance(P.x, P.y, MMCX, MMCY);
if (Dist > 20) then
begin
Diff := Point(P.x - MMCX, P.y - MMCY);
Mid := Point(((Diff.x / 2) + MMCX), ((Diff.y / 2) + MMCY));
Mouse(Mid.x, Mid.y, 2, 2, mouse_left);
Currently('Moving closer to bank...');
Wait(500+Random(500));
WaitMoving(5000);
Exit;
end else
begin
Currently('Close enough to bank...');
Exit;
end;
end else
Currently('Could not find bank symbol...');
end;

function OpenDungBank: Boolean;
var
aTPA: T2DPointArray;
TPA: TPointArray;
P: TPoint;
c, t, i: Integer;
begin
if not LoggedIn then Exit;
BankAdjust(4);
KeyDown(VK_DOWN);
Wait(500+Random(150));
KeyUp(VK_DOWN);
TabWait(1000, tab_INV);
for c := 15 to 25 do
begin
Currently('Opening bank: Tolerance is '+ IntToStr(c) +'...');
TPA := FindTPointCluster(BankerColor, c, Point(MSCX, MSCY), -1, 1000, 50, MSBox);
aTPA := TPAToATPA(TPA, 60);
if (Length(aTPA) > 0) then
begin
SortATPAFromMidPoint(aTPA, Point((MSCX - 150), MSCY));
for t := 0 to High(aTPA) do
begin
P := MiddleTPA(aTPA[t]);
MMouse(P.x, P.y, 3, 3);
Wait(300+Random(100));
if WaitUptextMulti(['remen', 'nnik', 'anker'], 500) then
begin
ClickMouse2(mouse_right);
if WaitOption('ank Fr', 1000) then
begin
Wait(500+Random(500));
MarkTime(i);
repeat
Result := BankOpened or PinScreen;
if Result then
Break;
Wait(200+Random(50));
until(TimeFromMark(i) > 5000);
if Result then
begin
Currently('Bank opened!');
Exit;
end else
Currently('Failed to open bank!');
end;
end;
if (t >= 2) then
Break;
end;
end;
end;
if not Result then
Currently('Failed to open bank!');
end;

function DoBanking(Tries: Integer): Boolean;
var
Click, cTries, c, i: Integer;
Current: String;
Left: Boolean;
begin
if not LoggedIn then Exit;
if (PinScreen and (UserPin <> '')) then
InPin(UserPin);
if BankOpened then
begin
if (InvCount > 1) then
begin
Current := 'Depositing ores';
Click := mouse_right;
Left := False;
cTries := Round(Tries / 2);
c := 0;
repeat
if (InvCount < 2) then
Break;
if (c >= cTries) then
begin
Current := 'Depositing the stragglers';
Click := mouse_left;
Left := True;
end;
Currently(Current +'...');
for i := 2 to 28 do
begin
if (InvCount < 2) then
Break;
if ExistsItem(i) then
begin
MouseItem(i, Click);
if not Left then
begin
if WaitOption('ll', 1000) then
begin
Result := True;
Wait(750+Random(500));
if Result then
begin
c := (cTries - 1);
Break;
end else
Continue;
end;
end;
Wait(400+random(100));
end;
end;
Inc(c);
until((InvCount < 2) or (c >= Tries));
Wait(1000+Random(500));
end;
if (InvCount > 1) then
Error('Failed to bank some items!')
else
begin
Currently('Ores banked!');
Inc(LoadsDone);
CloseBank;
Calibrate;
end;
end else
Currently('Failed to open bank!');
end;

function ExcludeColors(ExColors, ExTol: array of Integer; aTPA: T2DPointArray): Boolean;
var
Count: array of Integer;
Box: TBox;
hColors, i: Integer;
begin
Result := False;
SetLength(Count, lExColors);
Box := GetATPABounds(aTPA);
hColors := (lExColors - 1)
for i := 0 to hColors do
begin
Count[i] := CountColorTolerance(ExColors[i], Box.x1, Box.y1, Box.x2, Box.y2, ExTol[i]);
if (Count[i] >= 3) then
begin
Result := True;
Exit;
end;
end;
end;

function WaitMessage(WaitTime: Integer; Text: String): Boolean;
var
t: Integer;
begin
Result := False;
FixChat;
MarkTime(t);
repeat
Result := (Pos(Text, GetBlackChatMessage) <> 0);
if Result then
Exit;
Wait(20);
until(TimeFromMark(t) > WaitTime);
end;

function WaitMessageMulti(WaitTime: Integer; Text: TStringArray): Boolean;
var
EachWait, hText, t, i: Integer;
begin
Result := False;
hText := High(Text);
EachWait := Round(150 / hText);
FixChat;
MarkTime(t);
repeat
for i := 0 to hText do
begin
Result := WaitMessage(EachWait, Text[i]);
if Result then
Exit;
end;
until(TimeFromMark(t) > WaitTime);
end;

function MineOre: Boolean;
var
Tries, c, i: Integer;
aTPA: T2DPointArray;
TPA: TPointArray;
P: TPoint;
begin
if not LoggedIn then Exit;
for i := 5 to 15 do
begin
AntiBan;
Currently('Searching for ore: Tolerance is '+ IntToStr(i) +'...');
Tries := 0;
repeat
TPA := FindTPointCluster(OreColor, i, Point(MSCX, MSCY), -1, -1, 12, MSBox);
aTPA := SplitTPAEx(TPA, 12, 12);
if (Length(aTPA) > 0) then
begin
for c := 0 to High(aTPA) do
begin
if not ExcludeColors(ExColors, ExTol, aTPA) then
begin
P := MiddleTPA(aTPA[c]);
MMouse(P.x, P.y, 3, 3);
Wait(300+Random(100));
if WaitUptext(OreUptext, 500) then
begin
ClickMouse2(mouse_right);
Result := WaitOption('ine', 1000);
if Result then
begin
Currently('Ore found!');
Wait(300+Random(100));
while IsMoving do
Wait(150);
MarkTime(StartMine);
//WaitMoving(2500);
Exit;
end else
begin
{if PickupDrops then
begin
if WaitOption('ake', 1000) then
begin
Currently('Picking up an ore...');
Inc(OresPicked);
end;
end;}
end;
end;
end else
Currently('Wrong ore found...');
if (c >= 2) then
Break;
end;
end;
Inc(Tries);
until(Tries > 1);
end;
end;

function HopWorld: Boolean;
var
aTPA: T2DPointArray;
TPA: TPointArray;
P: TPoint;
PlayerBox, ConfirmBox, SkipBox, PlayBox, RefreshBox, WorldBox, SortBox, StarBox: TBox;
xSlide, ySlide, Rand, haTPA, h, t, i: Integer;
begin
Result := False;
Currently('Hopping to a different world...');
if LoggedIn then
ExitToLobby;
Wait(500+Random(500));
ConfirmBox := IntToBox(288, 420, 478, 443);
SkipBox := IntToBox(493, 424, 565, 437);
PlayerBox := IntToBox(74, 27, 93, 46);
PlayBox := IntToBox(263, 449, 503, 473);
RefreshBox := IntToBox(76, 65, 101, 90);
WorldBox := IntToBox(167, 24, 263, 47);
SortBox := IntToBox(122, 184, 130, 193);
StarBox := IntToBox(92, 199, 115, 436);
xSlide := RandomRange(684, 697);
ySlide := RandomRange(227, 409);
MarkTime(t);
repeat
if not ColorWait(1000, 6314553, 5, PlayerBox) then
begin
if ColorWait(1000, 348683, 5, ConfirmBox) then
begin
MouseTBox(SkipBox, mouse_left);
Wait(500+Random(500));
Break;
end;
end else
Break;
Wait(500+Random(500));
until(TimeFromMark(t) > 10000);
MarkTime(i);
repeat
if not ColorWait(1000, 16645505, 5, RefreshBox) then
begin
MouseTBox(WorldBox, mouse_left);
Wait(500+Random(500));
Break;
end else
Break;
Wait(500);
until(TimeFromMark(i) > 10000);
MarkTime(h);
repeat
MouseTBox(SortBox, mouse_left);
Wait(500+Random(500));
Mouse(xSlide, ySlide, 0, 0, mouse_left);
Wait(500+Random(500));
FindColorsTolerance(TPA, 11250603, StarBox.x1, StarBox.y1, StarBox.x2, StarBox.y2, 5);
aTPA := TPAToATPAEx(TPA, 12, 12);
if (Length(aTPA) > 0) then
begin
haTPA := High(aTPA);
Rand := Random(haTPA);
P := MiddleTPA(aTPA[Rand]);
Mouse(P.x, P.y, 1, 1, mouse_left);
Result := True;
Break;
end;
until(TimeFromMark(h) > 10000);
if Result then
begin
MouseTBox(PlayBox, mouse_left);
Wait(2000+Random(2000));
WaitLoggedIn(2000);
end;
end;

procedure ToMineProc;
var
t, i: Integer;
begin
if not InvFull then
begin
if Teleport('clan', 2) then
begin
MarkTime(t);
Wait(3500+Random(1000));
repeat
if AtArea('clangrounds', 1000) then
Break;
Wait(500+Random(250));
Antiban;
until(TimeFromMark(t) > 10000);
end;
if AtArea('clangrounds', 2000) then
begin
GetNPCDotColor;
AlignWalking('mine', 5000);
WalkTo('mine');
MarkTime(i);
repeat
if AtArea('mine', 1000) then
Break;
Wait(500+Random(250));
Antiban;
until(TimeFromMark(i) > 5000);
end;
if AtArea('mine', 2000) then
begin
WalkTo('spot');
Wait(500+Random(250));
end;
end;
end;

procedure MineOreProc;
var
MinWait, sCount, eCount: Integer;
begin
if AtArea('mine', 2000) then
begin
Stolen := 0;
MinWait := 3000;
sCount := InvCount;
repeat
if (Stolen >= HopCount) and HopIfTaken then
begin
if not HopWorld then
Error('Failed to hop world!');
end;
if MineOre then
begin
Currently('Mining ore...');
repeat
if WaitMessage(250, 'currently') then
begin
Inc(Stolen);
Break;
end;
eCount := InvCount;
if (eCount > sCount) then
begin
if CheckInvColor(InvOre, eCount, 5) then
begin
AvgMine := (AvgMine + (TimeFromMark(StartMine) + 500)) / 2;
MineWait := (MineWait + AvgMine) / 2;
if (MineWait < MinWait) then
MineWait := MinWait + (MineWait / 3);
Currently('Ore mined!');
Inc(OresMined);
Break;
end;
end else
begin
if WaitMessageMulti(150, ['manage', 'level', 'found']) then
begin
Inc(Stolen);
Break;
end;
end;
Wait(100+Random(50));
AntiBan;
until(TimeFromMark(StartMine) > MineWait);
sCount := InvCount;
ProgressReport;
end;
Wait(100+Random(50));
until(InvFull);
end;
end;

procedure ToBankProc;
var
t, i, c: Integer;
begin
if InvFull then
begin
if Teleport('dung', 2) then
begin
MarkTime(t);
Wait(6000+Random(3000));
repeat
if AtArea('dung', 1000) then
Break;
Wait(500+Random(250));
Antiban;
until(TimeFromMark(t) > 12000);
end;
if AtArea('dung', 2000) then
begin
GetNPCDotColor;
AlignWalking('bank', 5000);
WalkTo('bank');
MarkTime(i);
repeat
if AtArea('bank', 1000) then
Break;
Wait(500+Random(250));
Antiban;
until(TimeFromMark(i) > 5000);
end;
if AtArea('bank', 2000) then
begin
if (InvCount > 1) then
begin
MarkTime(c);
repeat
if OpenDungBank then
DoBanking(4);
Wait(500+Random(250));
AntiBan;
until((InvCount < 2) or (TimeFromMark(c) > 20000));
end;
end;
end;
end;

procedure ToMineLoop(Tries: Integer);
var
i: Integer;
begin
if InvFull then
Exit;
i := 0;
repeat
if (i > 0) then
begin
Currently('Trying again...');
Calibrate;
end;
ToMineProc;
Inc(i);
until(AtArea('mine', 2000) or (i > Tries));
if not AtArea('mine', 2000) then
Error('Walking to mine messed up!');
end;

procedure MineOreLoop(Tries: Integer);
var
i: Integer;
begin
if InvFull then
Exit;
i := 0;
repeat
if (i > 0) then
begin
Currently('Trying again...');
Calibrate;
end;
MineOreProc;
Inc(i);
until(InvFull or (i > Tries));
if not InvFull then
Error('Ores not found!');
end;

procedure ToBankLoop(Tries: Integer);
var
i: Integer;
begin
if not InvFull then
Exit;
i := 0;
repeat
if (i > 0) then
begin
Currently('Trying again...');
Calibrate;
end;
ToBankProc;
Inc(i);
until((InvCount < 2) or (i > Tries));
if (InvCount > 1) then
Error('Banking messed up!');
end;

procedure ProgressReport;
begin
ClearDebug;
WriteLn(' Runaways v'+ Version +'!');
WriteLn('<=----------- Rimmington Tele-Banker ----------=>');
WriteLn('| Running for: '+ TimeRunning);
WriteLn('| Ores Mined: '+ IntToStr(OresMined) +' '+ OreToMine);
{if PickupDrops then
WriteLn('| Picked Up: '+ IntToStr(OresPicked) +' ores');}
WriteLn('| Banked: '+ IntToStr(LoadsDone) +' loads');
WriteLn('| Mining XP gained: '+ IntToStr(Round(OresMined * OreXP)) +' XP');
WriteLn('<=---------------------------------------------=>');
end;

procedure SetupScript;
begin
ClearDebug;
OresMined := 0;
OresPicked := 0;
Currently('Setting up Script...');
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 21;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

setupSRL();
IgnoreBar;
DeclarePlayers;
DeclareColors;
ActivateClient;
if not LoggedIn then
LoginPlayer;
WaitLoggedIn(2000);
ProgressReport;
end;

begin
SetupScript;
MouseSpeed := (14+Random(6));
SetupPlay;
SetupVars;
SetChat('all', 0);
SetChat('hide', 1);
Calibrate;
MarkTime(t);
repeat
ToMineLoop(2);
if (Loop >= 4) then
begin
Calibrate;
Loop := 0;
end;
MineOreLoop(2);
ToBankLoop(2);
ProgressReport;
MouseSpeed := (14 + Random(6));
Inc(Loop);
until((TimeToRun <> 0) and (TimeFromMark(t) > (TimeToRun * (60 * 1000))));
end.


I'm not sure if you edited it to make it a keylogger… But I'll give it a go.
Thanks, I appreciate it.

Also, just double-checking, smartremote32.exe is all good, right?

iiNveRsioN

2012-07-15 23:15:58

From: Law and Justice
I'm not sure if you edited it to make it a keylogger… But I'll give it a go.
Thanks, I appreciate it.

Also, just double-checking, smartremote32.exe is all good, right?


If you want to compare you can find the original non-fixed script in the mining section of "Runescape Scripts" here on the forum.

And yes, that is one of the plugins you need.

Brandon

2012-07-15 23:18:04

From: Law and Justice
I'm not sure if you edited it to make it a keylogger… But I'll give it a go.
Thanks, I appreciate it.

Also, just double-checking, smartremote32.exe is all good, right?


Ahh the paranoid.. here.. The script he posted is clean.. There is a 4-8 line difference:

http://diffchecker.com/6P968hoz

That link shows you the difference between the original vs his edit.

The original is red, his changes are green.

You don't need to double click smartremote.. You need to run it in SIMBA……….

Leonardo Da Vinci

2012-07-15 23:19:46

From: iiNveRsioN
If you want to compare you can find the original non-fixed script in the mining section of "Runescape Scripts" here on the forum.

And yes, that is one of the plugins you need.


I believe you, just wanted to make sure.
I appreciate the effort, but now I get this error:
SRL Compiled in 15 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Error: Out Of Range at line 59
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap]

iiNveRsioN

2012-07-15 23:21:17

From: Law and Justice
I believe you, just wanted to make sure.
I appreciate the effort, but now I get this error:


To fix that refer to Brandons post:

From: Brandon
The tutorial I said would be noob friendly for making your own plugins.. This is for the people who get Paired Client error:
http://villavu.com/forum/showthread.php?t=86387

For those getting SmartDebugDC, you need to follow the guide here: http://villavu.com/forum/showthread.php?t=84334

To update your script. If you don't want to follow the guide you can try a Beta script updater: http://villavu.com/forum/showpost.php?p=1066051&postcount=52

It may or may not work. It should update your scripts for you. Hopefully.. else just follow the guide. I'd say follow the guide and try to learn.

Leonardo Da Vinci

2012-07-15 23:24:01

From: Brandon
Ahh the paranoid.. here.. The script he posted is clean.. There is a 4-8 line difference:

http://diffchecker.com/6P968hoz

That link shows you the difference between the original vs his edit.

The original is red, his changes are green.

You don't need to double click smartremote.. You need to run it in SIMBA……….


Awesome, thanks for that.
And thanks for showing me that website, that's brilliant.

From: iiNveRsioN
To fix that refer to Brandons post:


Cheers!

Esparno

2012-07-15 23:26:23

From: Brandon
Post your script.. I will look at it. If it's bad I'm going to post the exact same unedited script.

Edit: I tested the script Iinversion posted. It works just fine.. You did not setup correctly. I even posted my entire simba folder. I'm not sure how you messed that up.


Me either, but somehow I did. I followed your directions, have the same files in my folders, and yet it still won't work.

I give up, back to manually playing 3 characters at once.

EDIT: So I downloaded and ran the simba from the file Brandon posted and now every time I run a script I get some sort of memory error or something. This is from the log file because it doesn't say explicitly what's wrong
Program exception! 
Stacktrace:

Exception class: EAccessViolation
Message: Access violation

EDIT2: OK I discovered that I cannot see any extensions in the extensions menu, despite them being in the correct folder. WTF

ThatGuy727

2012-07-15 23:30:22

i wasn't sure how to setup the 6hourfix
so i started the script via smartmanager for now
would this still restart my script with smartv7.2?

Brandon

2012-07-15 23:31:33

From: Esparno
Me either, but somehow I did. I followed your directions, have the same files in my folders, and yet it still won't work.

I give up, back to manually playing 3 characters at once.

EDIT: So I downloaded and ran the simba from the file Brandon posted and now every time I run a script I get some sort of memory error or something. This is from the log file because it doesn't say explicitly what's wrong
Program exception! 
Stacktrace:

Exception class: EAccessViolation
Message: Access violation


:S Dunno about that.. maybe your java.

From: ThatGuy727
i wasn't sure how to setup the 6hourfix
so i started the script via smartmanager for now
would this still restart my script with smartv7.2?


Yes it will still work.

Esparno

2012-07-15 23:34:36

I doubt it's my java, but the new issue is that with your Simba I cannot see any extensions despite them being inside the correct folder…

EDIT: I am SO FUCKING CONFUSED. I found out where the settings are to change the folder locations, but it wont let me change where extensions are. I changed every other one no problem.

EDIT2: Ok so I changed it through advanced setup, but normal setup wouldnt make the changes stick, and now we are back to the same problem as before.

So with your simba folder and no other altercations other than to change the folder locations for plugins and extensions and whatnot, I am still getting the same error

[Error] C:\Useful Programs\Simba2\Includes\srl/srl/misc/smartparams.simba(37:8): Unknown identifier 'RSReady' at line 36

Esparno

2012-07-15 23:43:22

OK so now it's working suddenly. No idea why, but yea it's a script problem now because the rimmington miner script that was posted works…

Now I just need to figure out what I need to do to fix my scripts.

iiNveRsioN

2012-07-15 23:48:08

From: Esparno
OK so now it's working suddenly. No idea why, but yea it's a script problem now because the rimmington miner script that was posted works…

Now I just need to figure out what I need to do to fix my scripts.


Post the script you are trying to get to work.

h4jgyvis

2012-07-16 00:00:25

From: Brandon
Here is my simba folder. Do whatever you want with it: http://www.mediafire.com/?dytrd9dr75midfb


Thanks for that! I'm impressed by your patience! I've have given up and gone offline long ago!

Something you probably know; after copying your Simba folder, I tested it by adding:

MoveMouse(100, 100);

and then tried:

Mouse(100, 100, 0, 0, false);

The weird thing is that it pointed the mouse to different locations. Mouse pointed about 100 pixels (guestimated; I didn't measure it) below where MoveMouse pointed. :duh:
_______________________________________________________

From: po2n star
[Error] C:\Users\JT\Desktop\Simba scripts\Simba Scripts\triband99.simba(220:3): Unknown identifier 'Smart_Server' at line 219
Compiling failed.

How do I look for Smart.simba in the script? I forgot what I did last time to quick find.


It's probably in the includes at the top of your scripts. Did you try using CTRL+F?

Brandon

2012-07-16 00:08:58

From: h4jgyvis
Thanks for that! I'm impressed by your patience! I've have given up and gone offline long ago!

Something you probably know; after copying your Simba folder, I tested it by adding:

MoveMouse(100, 100);
and then tried:

Mouse(100, 100, 0, 0, false);
The weird thing is that it pointed the mouse to different locations. Mouse pointed about 100 pixels (guestimated; I didn't measure it) below where MoveMouse pointed. :duh:
_______________________________________________________



It's probably in the includes at the top of your scripts. Did you try using CTRL+F?


Movemouse has an offset of 50 px. Doing MMouse will call that offset and that's y you get the difference. Stick to MMouse/ClickMouse2. The other one uses GetMousePos which will throw you off. Simba has to fix it officially. This is a temp fix remember that.

Kyle Undefined

2012-07-16 00:10:13

Look at what you've caused ggzz! :p

Also, look at the number of times this thread has been viewed!

Esparno

2012-07-16 00:11:22

From: iiNveRsioN
Post the script you are trying to get to work.


program Ghouler;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

Const
//Change this to no if you dont want paint and are to lazy to disable debug.
Paint = 'No';

//True for it to pick up charms
//False for it to not pick up charms.
Charmer = True;

//Yes to pickup Effigies, no to not pick them up
//This still may be buggy.
Effigy = 'Yes';

//True to pickup Champion Scroll, False to not pick them up
//This still may be buggy.
ChampionScroll = False;

var
foodnumber,P,T,Z,Exp,Charms,XPH,BMP,Kills,MSpeed,RandAmount:Integer;
DCols: Array of Integer;
Drops: Array of String;


procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

With Players[0] Do
Begin
Name := ''; //Player username.
Pass := ''; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True;
End;

End;

//\
// \\
//DO \\
// Not \\
// Change\\
// Anymore \\
//-----------\\
//_____________\\
// Made by Laake \\
//_________________\\
//###################\\
//#####################\\
//#######################\\
//#########################\\
//## Dont Change anymore ##\\
//#############################\\
//###############################\\
//_________________________________\\


Procedure RandomThing;
Begin
MakeCompass(RandomRange(0,360));
end;

Function UInFight: Boolean;
begin
Writeln('Checking for fight');
Wait(100);
Writeln('Pixel shift of '+IntToStr(averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360)));
if (averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360) < 150) then RandomThing;
if (averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360) > 400) then
Begin
Result := True;
Exit;
end else
if not InFight then
Result :=False;
Exit;
end;

procedure SetupChar;

begin

SetupSRL();
SetAngle(0);
ClickNorth(0);
end;

Procedure ToBank;
Var
myPath: TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE, ['13_6','14_6']);
myPath := [Point(5502, 2599), Point(5513, 2597), Point(5523, 2593), Point(5532, 2592), Point(5542, 2591), Point(5550, 2593), Point(5558, 2597), Point(5567, 2600), Point(5576, 2605), Point(5586, 2612), Point(5594, 2622), Point(5603, 2632), Point(5610, 2642), Point(5617, 2652), Point(5626, 2659), Point(5634, 2671), Point(5641, 2684), Point(5647, 2695), Point(5656, 2698), Point(5666, 2700), Point(5672, 2705), Point(5679, 2714), Point(5684, 2730), Point(5695, 2740), Point(5711, 2740), Point(5726, 2740), Point(5739, 2735), Point(5751, 2732), Point(5762, 2730), Point(5772, 2725), Point(5783, 2722), Point(5797, 2717), Point(5811, 2714), Point(5824, 2714), Point(5835, 2713), Point(5846, 2715), Point(5860, 2722), Point(5874, 2727)];
SPS_WalkPath(myPath);
end;

Procedure ToGhouls;
Var
myPath: TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE,['14_6','13_6']);
myPath := [Point(5878, 2728), Point(5870, 2728), Point(5857, 2722), Point(5849, 2720), Point(5840, 2719), Point(5827, 2717), Point(5813, 2716), Point(5798, 2716), Point(5784, 2722), Point(5773, 2732), Point(5757, 2739), Point(5741, 2742), Point(5727, 2745), Point(5712, 2743), Point(5699, 2737), Point(5685, 2728), Point(5678, 2712), Point(5666, 2700), Point(5653, 2689), Point(5642, 2679), Point(5633, 2672), Point(5628, 2666), Point(5618, 2656), Point(5612, 2645), Point(5607, 2631), Point(5595, 2619), Point(5582, 2610), Point(5571, 2604), Point(5559, 2596), Point(5548, 2596), Point(5536, 2597), Point(5524, 2599), Point(5512, 2599)];
SPS_WalkPath(myPath);
end;

procedure MSI_RandomFKey;
var
i, randInt, randKey, currTab: Integer;
keys: array[0..4] of Word;
begin
currTab := GetCurrentTab();

keys[0] := VK_F1;
keys[1] := VK_F2;
keys[2] := VK_F3;
keys[3] := VK_F4;
keys[4] := VK_F5;

randInt := Random(6);

case randInt of
0..4:
begin
KeyDown(keys[randInt]);
wait(35+random(85));
KeyUp(keys[randInt]);
end;

else
for i := 1 to 3 do
begin
randKey := Random(5);
KeyDown(keys[randKey]);
wait(35+random(85));
KeyUp(keys[randKey]);
end;
end;
wait(75+random(100));
GameTab(currTab);
end;
Function Eat(What: String): Boolean;
var
I: Integer;
begin
Result := False;
If Not LoggedIn then Exit;
if (foodnumber=1) then Exit;
if (HPPercent < 70) then
If InvEmpty then Logout
else
for i := 1 to 28 do
begin
if ExistsItem(i) then
InvMouse(I, 3);
if IsUpText(What) then
begin
ClickMouse2(True);
Wait(RandomRange(350, 525));
Result := True;
Exit;
end else
end;
end;


procedure GAntiBan;
begin
writeln('Choosing random antiban');
case random(11) of
0 : begin
GameTab(27);
Wait(randomrange(400,800));
end;
1 : begin
RandomMovement;
end;
2 : begin
MSI_RandomFKey;
end;
3 : begin
RandomRClick;
end;
4 : begin
end;
5 : begin
HoverSkill(skill_strength,false);
end;
6 : begin
HoverSkill(skill_hitpoints,false);
Wait(randomrange(300,600));
end;
7 : begin
GameTab(23);
end;
8 : begin
PickUpMouse;
end;
9 : begin
Wait(randomrange(1000,2000));
end;
10 : begin
HoverSkill('attack',false);
end;
end;
Wait(randomrange(500,1000));
end;

Procedure LoadBMP;
begin
BMP := BitmapFromString(517, 143, 'meJzsvWuQHMeZLYYIzE4gZqJ6' +
'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' +
'SZ9G9Sawuz');

end;
procedure LoadVars;
begin
Drops:=['old charm','ffigy', 'rimson charm', 'reen charm', 'lue charm']

end;

Procedure XPcalc;
Begin
Exp := (Kills*266);
End;

Procedure XPhour;
Begin
XPcalc;
XPH := Round((Exp * 3600) / (GetTimeRunning / 1000));
End;

Procedure DoThePainting;
Begin
If Paint = 'Yes' then
begin
XPhour;
LoadBMP;
SMART_DrawBitmap(False, BMP, Point(0, 337));
SMART_DrawText(130, 395, UpCharsEx, '' +IntToStr(Kills)+ '', clRed);
SMART_DrawText(130, 420, UpCharsEx, '' +IntToStr(Exp)+ '', clRed);
SMART_DrawText(130, 445, UpCharsEx, ''+IntToStr(XPH)+'', clRed);
SMART_DrawText(325, 395, UpCharsEx,''+TimeRunning+' ', clRed);
SMART_DrawText(440, 420, UpCharsEx, ''+IntToStr(Charms)+'', clRed);
FreeBitmap(BMP);
end;
end;
Procedure Proggy;

begin
ClearDebug;
XPHour;
Writeln('********************************************');
Writeln('* |*/\GhoulerV4/\*| *');
Writeln('********************************************');
Writeln('*You have killed ' + IntToStr(Kills) + 'Ghouls');
Writeln('*And have Gained ' + IntToStr(Exp) + 'EXP');
Writeln('*And have Gained ' + IntToStr(XPH) + 'XP/H');
Writeln('*And have Picked up ' + IntToStr(Charms) + 'Charms');
Writeln('* Ran for ' + TimeRunning + '');
Writeln('********************************************');
end;

//Euphamism thanks, through YoHo
procedure SMART_DrawBitmapWithTextMulti(Clear: Boolean; Bitmap: Integer; BmpPlacement: TPoint; TP: TStringArray; Shadow: Boolean; TxtPlacement: TPoint; Font: string; Colour: TColor);
var
I, B, H, Pic, TPH, Numb: Integer;
Offset: TPoint;
TTP: TPointArray;
Canvas: TCanvas;
begin

if (not SMART_DebugSetup) then
SMART_SetupDebug();


TPH := High(TP);

Offset := IntToPoint(TxtPlacement.x - BmpPlacement.x, TxtPlacement.y - BmpPlacement.y);

Pic := CopyBitmap(Bitmap);

for I := 0 to TPH do
begin

TTP := LoadTextTPA(TP[i], SmallChars, H);

for B := 0 to High(TTP) do
begin

Numb := ((I + 1) * 13);

if Shadow then
try

FastSetPixel(Pic, TTP[b].x + 1 + Offset.x , TTP[b].y + Numb + 1 + Offset.y,131072);
except
end;

try

FastSetPixel(Pic, TTP[b].x + Offset.x, TTP[b].y + Numb + Offset.y, Colour);
except
end;
end;
end;

Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, BmpPlacement.x, BmpPlacement.y);
FreeBitmap(Pic);
end;


//credits to Flight for helping with this.
Function FindGhoul(Var X,Y: Integer): Boolean;
var
CTS,I,T,J: Integer;
TPA,T1,T2: TPointArray;
Box:TBox;
PBox: TPointArray;
ATPA:T2DPointArray;

begin
MarkTime(J);
repeat
Result := False;
CTS := GetColorToleranceSpeed;
PBox := TPAFromBox(IntToBox(240, 130, 290, 190));

ColorToleranceSpeed(2);

SetColorSpeed2Modifiers(0.20, 1.60);

FindColorsSpiralTolerance(MSCX, MSCY, T1,(11652298), MSX1, MSY1, MSX2, MSY2, 3);
FindColorsSpiralTolerance(MSCX, MSCY, T2,(11652298), MSX1, MSY1, MSX2, MSY2, 8);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
TPA := CombineTPA(T1,T2);
ATPA := TPAtoATPAEx(TPA,30,30);
SortATPAFrom(ATPA,Point(257,157));

For i := 0 to High(ATPA) do
begin
if (Length(TPA) < 1) then
Exit;
Box := GetATPABounds(ATPA);
SMART_DrawDotsEx(false, TPA, 65320);
MiddleTPAEx(ATPA[i],X,Y);
MMouse(X,Y,5,5);

if WaitUpText('ck Gho', 50) then
begin
GetMousePos(X, Y);
ClickMouse2(True);
Result := True;
SMART_ClearCanvasArea(Box);
Exit;
end else
Result := False;
end;
Until (TimeFromMark(J) > 3500);
End;
Function FindObjOnScreen(Up,Option:Array of String;Color,Tolerance1,Tolerance2:Integer;MC2:Variant;Hmod,Smod:Extended): Boolean;
var
X,Y:Integer;
CTS,I,T,J: Integer;
Box:TBox;
TPA,T1,T2,Pbox: TPointArray;
ATPA:T2DPointArray;

begin
MarkTime(J);
repeat
Result := False;
CTS := GetColorToleranceSpeed;
PBox := TPAFromBox(IntToBox(245, 135, 280, 185));

ColorToleranceSpeed(2);

SetColorSpeed2Modifiers(Hmod,Smod);

FindColorsSpiralTolerance(MSCX, MSCY, T1,(Color), MSX1, MSY1, MSX2, MSY2, Tolerance1);
FindColorsSpiralTolerance(MSCX, MSCY, T2,(Color), MSX1, MSY1, MSX2, MSY2, Tolerance2);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
TPA := CombineTPA(T1,T2);
ATPA := TPAtoATPAEx(TPA,20,20);
SortATPAFrom(ATPA,Point(257,157));

For i := 0 to High(ATPA) do
begin
if (Length(TPA) < 1) then
Exit;
Box := GetATPABounds(ATPA);
SMART_DrawBoxEx(False,IntToBox(Box.X1,Box.Y1,Box.X2,Box.Y2),65320);
SMART_DrawDotsEx(false, TPA, 65320);
MiddleTPAEx(ATPA[i],X,Y);
MMouse(X,Y,5,5);
if WaitUpTextMulti(Up, 400) then
begin
GetMousePos(X, Y);
ClickMouse2(MC2);
ChooseOptionMulti(Option);
SMART_ClearCanvasArea(Box);
Result := True;
Exit;
end;
end;
Until (TimeFromMark(J) > 3500);
End;

Function PickupCharms:Boolean;
Var
X, Y: Integer;
begin
If Charmer = False then Exit;
If Charmer = True then
begin
FindNormalRandoms;
If FindObjOnScreen(['ake', 'Take', 'ke', 'ak'],['harm'],6397359,4,8,False,0.38,0.55) Then
Begin
Wait(500);
writeln('You have found the some Charms!');
While IsMoving do
Wait(50);
FindNormalRandoms;
Wait(RandomRange(300,400));
Inc(Charms);
End;
end;
end;

procedure GetOutF;
begin
case random(2) of
0 : begin
KeyDown(VK_Tab);
wait(35+random(100));

wait(35+random(100));
KeyUp(VK_Tab);
wait(25+random(70));

wait(35+random(100));
end;
1 : begin
ExamineInv;
end;
end;
end;

procedure GMoveMouse;
begin
case random(4) of
0 : begin
mMouse(5,25,10,20);
end;
1 : begin
mMouse(250,150,40,40);
end;
2 : begin
mMouse(505,350,50,50);
end;
3 : begin
mMouse(30,315,20,40);
end;
end;
end;
//laakes
Procedure RAntiBan;
begin
Wait(randomrange(200,400));
case random(RandAmount) of
0 : begin
writeln('Random Wait AntiBan');
Wait(randomrange(1100,2500));
end;
1 : begin
GAntiBan;
end;
2 : begin
writeln('pickup mouse / GMoveMouse');
PickUpMouse;
Wait(randomrange(25,100));
GMoveMouse;
Wait(randomrange(250,300));
end;
3 : begin
writeln('Double GMoveMouse');
GMoveMouse;
Wait(randomrange(45,100));
GMoveMouse;
end;
end;
end;
//laake's
Procedure KillGhouls;
var
sX,sY,X,Y,J: Integer;
begin
Repeat
If FindGhoul(X,Y) then
Wait(1950);
Until UInFight or InFight;
If FindBlackChatMessage('omeone else is fighting') then begin
RandomThing;
GetOutF;
End;
If UInFight or Infight then
WriteLn('You are Ghouling this Ghoul!');
Inc(Kills);
begin
repeat
Proggy;
DoThePainting;
FindNormalRandoms;
Eat('Eat');
RAntiBan;
until (not UInFight) or (not OthersInFight) or (not LoggedIn)
end;
wait(randomrange(200,300));
end;

Procedure PickScroll;
Begin
If ChampionScroll = False then Exit;
If ChampionScroll = True then
Begin
FindObjOnScreen(['ake', 'Take', 'ke', 'ak'],['croll'],9621212,4,9,False,0.02,3.25);
End;
end;
Procedure PickEffigy;
Begin
If Effigy = 'No' then Exit;
If Effigy = 'Yes' then
Begin
FindObjOnScreen(['ake', 'Take', 'ke', 'ak'],['ffigy'],8290940,1,3,False,1.73,0.01);
End;
end;
procedure Startup;
begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

SetupSRL;
end.

begin
Startup;
SetupChar;
LoadVars;
DoThePainting;
repeat
MarkTime(Z);
Repeat
Wait(500);
DoThePainting;
FindObjOnScreen(['Bank', 'ank', 'ooth'],['ank'],7567226,1,3,True,1.59,0.48);
Until DidRedClick or (TimeFromMark(Z) > 2500);
If DidRedClick then
repeat
Wait(50);
until BankScreen;
begin
Proggy;
DepositAll;
wait(50 + Random(250));
Proggy;
Withdraw(0, 0, 28);
wait(50 + Random(250));
Proggy;
Deposit(1,1,false);
wait(50 + Random(250));
Proggy;
CloseBank;
end;
ToGhouls;
repeat
DoThePainting;
Proggy;
KillGhouls;
DothePainting;
PickupCharms;
DoThePainting;
PickEffigy;
DoThePainting;
PickScroll;
DoThePainting;
until (hppercent<50);
ToBank;
DoThePainting;
Proggy;
FindNormalRandoms;
until not LoggedIn
writeln('stopping script');
Proggy;
TerminateScript;
end.

Or do you mean post the unedited version? Because I might have royally messed up this version.

Brandon

2012-07-16 00:28:52

From: Kyle Undefined
Look at what you've caused ggzz! :p

Also, look at the number of times this thread has been viewed!



LOL! Wow.. I actually never knew we had that many ppl at SRL.. It's only been a couple days too.

@the guy updating someone's ghouler.. That script has the most bugs I have ever seen..

1. Missing includes. Fighting scripts cannot use infight without {$I SRL/SRL/Skill/Fighting.simba}

2. SPS scripts cannot use SPS without {$I SPS/SPS.Simba}

3. 12+ unused variables :S???

4. TWO Main loops? Both ending with a dot.

5. The loop goes until not logged in? As soon as you start, if you cannot get logged in, it'll terminate.

6. Not every script needs to be updated.. But that one wouldn't even work even if SRL was fully functional lol.. Remember SRL is backwards compatible atm :S

7. Here's the fixed script. Did not test it. Dunno if it works.


program Ghouler;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Skill/Fighting.simba}
{$I SPS/SPS.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

const
Paint = 'No';
Charmer = True;
Effigy = 'Yes';
ChampionScroll = False;

var
foodnumber, Z, Exp, Charms, XPH, BMP, Kills, RandAmount: Integer;
Drops: array of string;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Nick := '';
Active := True;
end;
end;

procedure RandomThing;
begin
MakeCompass(RandomRange(0, 360));
end;

function UInFight: Boolean;
begin
Writeln('Checking for fight');
Wait(100);
Writeln('Pixel shift of ' + IntToStr(averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360)));
if (averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360) < 150) then
RandomThing;
if (averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360) > 400) then
begin
Result := True;
Exit;
end
else if not InFight then
Result := False;
Exit;
end;

procedure SetupChar;
begin
SetupSRL();
SetAngle(0);
ClickNorth(0);
end;

procedure ToBank;
var
myPath: TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE, ['13_6', '14_6']);
myPath := [Point(5502, 2599), Point(5513, 2597), Point(5523, 2593), Point(5532, 2592), Point(5542, 2591), Point(5550, 2593), Point(5558, 2597), Point(5567, 2600), Point(5576, 2605), Point(5586, 2612), Point(5594, 2622), Point(5603, 2632), Point(5610, 2642), Point(5617, 2652), Point(5626, 2659), Point(5634, 2671), Point(5641, 2684), Point(5647, 2695), Point(5656, 2698), Point(5666, 2700), Point(5672, 2705), Point(5679, 2714), Point(5684, 2730), Point(5695, 2740), Point(5711, 2740), Point(5726, 2740), Point(5739, 2735), Point(5751, 2732), Point(5762, 2730), Point(5772, 2725), Point(5783, 2722), Point(5797, 2717), Point(5811, 2714), Point(5824, 2714), Point(5835, 2713), Point(5846, 2715), Point(5860, 2722), Point(5874, 2727)];
SPS_WalkPath(myPath);
end;

procedure ToGhouls;
var
myPath: TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE, ['14_6', '13_6']);
myPath := [Point(5878, 2728), Point(5870, 2728), Point(5857, 2722), Point(5849, 2720), Point(5840, 2719), Point(5827, 2717), Point(5813, 2716), Point(5798, 2716), Point(5784, 2722), Point(5773, 2732), Point(5757, 2739), Point(5741, 2742), Point(5727, 2745), Point(5712, 2743), Point(5699, 2737), Point(5685, 2728), Point(5678, 2712), Point(5666, 2700), Point(5653, 2689), Point(5642, 2679), Point(5633, 2672), Point(5628, 2666), Point(5618, 2656), Point(5612, 2645), Point(5607, 2631), Point(5595, 2619), Point(5582, 2610), Point(5571, 2604), Point(5559, 2596), Point(5548, 2596), Point(5536, 2597), Point(5524, 2599), Point(5512, 2599)];
SPS_WalkPath(myPath);
end;

procedure MSI_RandomFKey;
var
i, randInt, randKey, currTab: Integer;
keys: array [0..4] of Word;
begin
currTab := GetCurrentTab();
keys[0] := VK_F1;
keys[1] := VK_F2;
keys[2] := VK_F3;
keys[3] := VK_F4;
keys[4] := VK_F5;
randInt := Random(6);
case randInt of
0..4:
begin
KeyDown(keys[randInt]);
wait(35 + random(85));
KeyUp(keys[randInt]);
end;
else
for i := 1 to 3 do
begin
randKey := Random(5);
KeyDown(keys[randKey]);
wait(35 + random(85));
KeyUp(keys[randKey]);
end;
end;
wait(75 + random(100));
GameTab(currTab);
end;

function Eat(What: string): Boolean;
var
I: Integer;
begin
Result := False;
if not LoggedIn then
Exit;
if (foodnumber = 1) then
Exit;
if (HPPercent < 70) then
if InvEmpty then
Logout
else
for i := 1 to 28 do
begin
if ExistsItem(i) then
InvMouse(I, 3);
if IsUpText(What) then
begin
ClickMouse2(True);
Wait(RandomRange(350, 525));
Result := True;
Exit;
end
else
end;
end;

procedure GAntiBan;
begin
writeln('Choosing random antiban');
case random(11) of
0:
begin
GameTab(27);
Wait(randomrange(400, 800));
end;
1:
begin
RandomMovement;
end;
2:
begin
MSI_RandomFKey;
end;
3:
begin
RandomRClick;
end;
4:
begin
end;
5:
begin
HoverSkill(skill_strength, false);
end;
6:
begin
HoverSkill(skill_hitpoints, false);
Wait(randomrange(300, 600));
end;
7:
begin
GameTab(23);
end;
8:
begin
PickUpMouse;
end;
9:
begin
Wait(randomrange(1000, 2000));
end;
10:
begin
HoverSkill('attack', false);
end;
end;
Wait(randomrange(500, 1000));
end;

procedure LoadBMP;
begin
BMP := BitmapFromString(517, 143, 'meJzsvWuQHMeZLYYIzE4gZqJ6' + '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' + 'SZ9G9Sawuz');
end;

procedure LoadVars;
begin
Drops := ['old charm', 'ffigy', 'rimson charm', 'reen charm', 'lue charm']
end;

procedure XPcalc;
begin
Exp := (Kills * 266);
end;

procedure XPhour;
begin
XPcalc;
XPH := Round((Exp * 3600) / (GetTimeRunning / 1000));
end;

procedure DoThePainting;
begin
if Paint = 'Yes' then
begin
XPhour;
LoadBMP;
SMART_DrawBitmap(False, BMP, Point(0, 337));
SMART_DrawText(130, 395, UpCharsEx, '' + IntToStr(Kills) + '', clRed);
SMART_DrawText(130, 420, UpCharsEx, '' + IntToStr(Exp) + '', clRed);
SMART_DrawText(130, 445, UpCharsEx, '' + IntToStr(XPH) + '', clRed);
SMART_DrawText(325, 395, UpCharsEx, '' + TimeRunning + ' ', clRed);
SMART_DrawText(440, 420, UpCharsEx, '' + IntToStr(Charms) + '', clRed);
FreeBitmap(BMP);
end;
end;

procedure Proggy;
begin
ClearDebug;
XPHour;
Writeln('********************************************');
Writeln('* |*/\GhoulerV4/\*| *');
Writeln('********************************************');
Writeln('*You have killed ' + IntToStr(Kills) + 'Ghouls');
Writeln('*And have Gained ' + IntToStr(Exp) + 'EXP');
Writeln('*And have Gained ' + IntToStr(XPH) + 'XP/H');
Writeln('*And have Picked up ' + IntToStr(Charms) + 'Charms');
Writeln('* Ran for ' + TimeRunning + '');
Writeln('********************************************');
end;

procedure SMART_DrawBitmapWithTextMulti(Clear: Boolean; Bitmap: Integer; BmpPlacement: TPoint; TP: TStringArray; Shadow: Boolean; TxtPlacement: TPoint; Font: string; Colour: TColor);
var
I, B, H, Pic, TPH, Numb: Integer;
Offset: TPoint;
TTP: TPointArray;
Canvas: TMufasaBitmap;
begin
if (not SMART_DebugSetup) then
SMART_SetupDebug();
TPH := High(TP);
Offset := IntToPoint(TxtPlacement.x - BmpPlacement.x, TxtPlacement.y - BmpPlacement.y);
Pic := CopyBitmap(Bitmap);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
if Shadow then
try
FastSetPixel(Pic, TTP[b].x + 1 + Offset.x, TTP[b].y + Numb + 1 + Offset.y, 131072);
except
end;
try
FastSetPixel(Pic, TTP[b].x + Offset.x, TTP[b].y + Numb + Offset.y, Colour);
except
end;
end;
end;
Canvas := TMufasaBitmap.Create;
Canvas.SetPersistentMemory(SmartDebugArray, 765, 503);
FastDrawTransparent(BmpPlacement.x, BmpPlacement.y, Pic, Canvas.Index);
FreeBitmap(Pic);
Canvas.Free;
end;

function FindGhoul(var X, Y: Integer): Boolean;
var
CTS, I, J: Integer;
TPA, T1, T2: TPointArray;
Box: TBox;
PBox: TPointArray;
ATPA: T2DPointArray;
begin
MarkTime(J);
repeat
Result := False;
CTS := GetColorToleranceSpeed;
PBox := TPAFromBox(IntToBox(240, 130, 290, 190));
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.20, 1.60);
FindColorsSpiralTolerance(MSCX, MSCY, T1, (11652298), MSX1, MSY1, MSX2, MSY2, 3);
FindColorsSpiralTolerance(MSCX, MSCY, T2, (11652298), MSX1, MSY1, MSX2, MSY2, 8);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
TPA := CombineTPA(T1, T2);
ATPA := TPAtoATPAEx(TPA, 30, 30);
SortATPAFrom(ATPA, Point(257, 157));
for i := 0 to High(ATPA) do
begin
if (Length(TPA) < 1) then
Exit;
Box := GetATPABounds(ATPA);
SMART_DrawDotsEx(false, TPA, 65320);
MiddleTPAEx(ATPA[i], X, Y);
MMouse(X, Y, 5, 5);
if WaitUpText('ck Gho', 50) then
begin
GetMousePos(X, Y);
ClickMouse2(True);
Result := True;
SMART_ClearCanvasArea(Box);
Exit;
end
else
Result := False;
end;
until (TimeFromMark(J) > 3500);
end;

function FindObjOnScreen(Up, Option: array of string; Color, Tolerance1, Tolerance2: Integer; MC2: Variant; Hmod, Smod: Extended): Boolean;
var
X, Y: Integer;
CTS, I, J: Integer;
Box: TBox;
TPA, T1, T2, Pbox: TPointArray;
ATPA: T2DPointArray;
begin
MarkTime(J);
repeat
Result := False;
CTS := GetColorToleranceSpeed;
PBox := TPAFromBox(IntToBox(245, 135, 280, 185));
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Hmod, Smod);
FindColorsSpiralTolerance(MSCX, MSCY, T1, (Color), MSX1, MSY1, MSX2, MSY2, Tolerance1);
FindColorsSpiralTolerance(MSCX, MSCY, T2, (Color), MSX1, MSY1, MSX2, MSY2, Tolerance2);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
TPA := CombineTPA(T1, T2);
ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPAFrom(ATPA, Point(257, 157));
for i := 0 to High(ATPA) do
begin
if (Length(TPA) < 1) then
Exit;
Box := GetATPABounds(ATPA);
SMART_DrawBoxEx(False, False, IntToBox(Box.X1, Box.Y1, Box.X2, Box.Y2), 65320);
SMART_DrawDotsEx(false, TPA, 65320);
MiddleTPAEx(ATPA[i], X, Y);
MMouse(X, Y, 5, 5);
if WaitUpTextMulti(Up, 400) then
begin
GetMousePos(X, Y);
ClickMouse2(MC2);
ChooseOptionMulti(Option);
SMART_ClearCanvasArea(Box);
Result := True;
Exit;
end;
end;
until (TimeFromMark(J) > 3500);
end;

function PickupCharms: Boolean;
begin
if Charmer = False then
Exit;
if Charmer = True then
begin
FindNormalRandoms;
if FindObjOnScreen(['ake', 'Take', 'ke', 'ak'], ['harm'], 6397359, 4, 8, False, 0.38, 0.55) then
begin
Wait(500);
writeln('You have found the some Charms!');
while IsMoving do
Wait(50);
FindNormalRandoms;
Wait(RandomRange(300, 400));
Inc(Charms);
Result := True;
end;
end;
end;

procedure GetOutF;
begin
case random(2) of
0:
begin
KeyDown(VK_Tab);
wait(35 + random(100));
wait(35 + random(100));
KeyUp(VK_Tab);
wait(25 + random(70));
wait(35 + random(100));
end;
1:
begin
ExamineInv;
end;
end;
end;

procedure GMoveMouse;
begin
case random(4) of
0:
begin
mMouse(5, 25, 10, 20);
end;
1:
begin
mMouse(250, 150, 40, 40);
end;
2:
begin
mMouse(505, 350, 50, 50);
end;
3:
begin
mMouse(30, 315, 20, 40);
end;
end;
end;

procedure RAntiBan;
begin
Wait(randomrange(200, 400));
case random(RandAmount) of
0:
begin
writeln('Random Wait AntiBan');
Wait(randomrange(1100, 2500));
end;
1:
begin
GAntiBan;
end;
2:
begin
writeln('pickup mouse / GMoveMouse');
PickUpMouse;
Wait(randomrange(25, 100));
GMoveMouse;
Wait(randomrange(250, 300));
end;
3:
begin
writeln('Double GMoveMouse');
GMoveMouse;
Wait(randomrange(45, 100));
GMoveMouse;
end;
end;
end;

procedure KillGhouls;
var
X, Y: Integer;
begin
repeat
if FindGhoul(X, Y) then
Wait(1950);
until UInFight or InFight;
if FindBlackChatMessage('omeone else is fighting') then
begin
RandomThing;
GetOutF;
end;
if UInFight or Infight then
WriteLn('You are Ghouling this Ghoul!');
Inc(Kills);
begin
repeat
Proggy;
DoThePainting;
FindNormalRandoms;
Eat('Eat');
RAntiBan;
until (not UInFight) or (not OthersInFight) or (not LoggedIn)
end;
wait(randomrange(200, 300));
end;

procedure PickScroll;
begin
if ChampionScroll = False then
Exit;
if ChampionScroll = True then
begin
FindObjOnScreen(['ake', 'Take', 'ke', 'ak'], ['croll'], 9621212, 4, 9, False, 0.02, 3.25);
end;
end;

procedure PickEffigy;
begin
if Effigy = 'No' then
Exit;
if Effigy = 'Yes' then
begin
FindObjOnScreen(['ake', 'Take', 'ke', 'ak'], ['ffigy'], 8290940, 1, 3, False, 1.73, 0.01);
end;
end;

procedure Startup;
begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
SetupSRL;
end;

begin
Startup;
SetupChar;
LoadVars;
DoThePainting;
repeat
MarkTime(Z);
repeat
Wait(500);
DoThePainting;
FindObjOnScreen(['Bank', 'ank', 'ooth'], ['ank'], 7567226, 1, 3, True, 1.59, 0.48);
until DidRedClick or (TimeFromMark(Z) > 2500);
if DidRedClick then
repeat
Wait(50);
until BankScreen;
begin
Proggy;
DepositAll;
wait(50 + Random(250));
Proggy;
Withdraw(0, 0, 28);
wait(50 + Random(250));
Proggy;
Deposit(1, 1, false);
wait(50 + Random(250));
Proggy;
CloseBank;
end;
ToGhouls;
repeat
DoThePainting;
Proggy;
KillGhouls;
DothePainting;
PickupCharms;
DoThePainting;
PickEffigy;
DoThePainting;
PickScroll;
DoThePainting;
until (hppercent < 50);
ToBank;
DoThePainting;
Proggy;
FindNormalRandoms;
until not LoggedIn writeln('stopping script');
Proggy;
TerminateScript;
end.

krisg05

2012-07-16 00:32:22

if anyone has a sw bank function that works please can they post it

print

2012-07-16 00:33:09

can someon please fix smithing bot ak smelter plox

Esparno

2012-07-16 00:34:00

It's entirely possibly I broke the script while trying to update it.

iiNveRsioN

2012-07-16 00:45:19

Hmm.. seems like I can't run more than one script of the same kind because when I try to it tries to use the other ones window.

Esparno

2012-07-16 00:47:37

I broke it so bad even the "fixed" version you posted doesnt work, it gets farther than mine did though. So I don't know what I did wrong when trying to edit it but here is the unedited Ghouls script.

program Ghouler;
{$DEFINE SMART}
{$i SRL/srl.simba}
{$i SRL/SRL/skill/fighting.simba}
{$i sps/sps.simba}
{$i SRL/SRL/misc/paintsmart.simba}

Const
//Change this to no if you dont want paint and are to lazy to disable debug.
Paint = 'No';

//True for it to pick up charms
//False for it to not pick up charms.
Charmer = True;

//Yes to pickup Effigies, no to not pick them up
//This still may be buggy.
Effigy = 'No';

//True to pickup Champion Scroll, False to not pick them up
//This still may be buggy.
ChampionScroll = False;

var
foodnumber,P,T,Z,Exp,Charms,XPH,BMP,Kills,MSpeed,RandAmount:Integer;
DCols: Array of Integer;
Drops: Array of String;


procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

With Players[0] Do
Begin
Name := ''; //Player username.
Pass := ''; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True;
End;

End;

//\
// \\
//DO \\
// Not \\
// Change\\
// Anymore \\
//-----------\\
//_____________\\
// Made by Laake \\
//_________________\\
//###################\\
//#####################\\
//#######################\\
//#########################\\
//## Dont Change anymore ##\\
//#############################\\
//###############################\\
//_________________________________\\


Procedure RandomThing;
Begin
MakeCompass(RandomRange(0,360));
end;

Function UInFight: Boolean;
begin
Writeln('Checking for fight');
Wait(100);
Writeln('Pixel shift of '+IntToStr(averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360)));
if (averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360) < 150) then RandomThing;
if (averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360) > 400) then
Begin
Result := True;
Exit;
end else
if not InFight then
Result :=False;
Exit;
end;

procedure SetupChar;

begin

SetupSRL();
SetAngle(0);
ClickNorth(0);
end;

Procedure ToBank;
Var
myPath: TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE, ['13_6','14_6']);
myPath := [Point(5502, 2599), Point(5513, 2597), Point(5523, 2593), Point(5532, 2592), Point(5542, 2591), Point(5550, 2593), Point(5558, 2597), Point(5567, 2600), Point(5576, 2605), Point(5586, 2612), Point(5594, 2622), Point(5603, 2632), Point(5610, 2642), Point(5617, 2652), Point(5626, 2659), Point(5634, 2671), Point(5641, 2684), Point(5647, 2695), Point(5656, 2698), Point(5666, 2700), Point(5672, 2705), Point(5679, 2714), Point(5684, 2730), Point(5695, 2740), Point(5711, 2740), Point(5726, 2740), Point(5739, 2735), Point(5751, 2732), Point(5762, 2730), Point(5772, 2725), Point(5783, 2722), Point(5797, 2717), Point(5811, 2714), Point(5824, 2714), Point(5835, 2713), Point(5846, 2715), Point(5860, 2722), Point(5874, 2727)];
SPS_WalkPath(myPath);
end;

Procedure ToGhouls;
Var
myPath: TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE,['14_6','13_6']);
myPath := [Point(5878, 2728), Point(5870, 2728), Point(5857, 2722), Point(5849, 2720), Point(5840, 2719), Point(5827, 2717), Point(5813, 2716), Point(5798, 2716), Point(5784, 2722), Point(5773, 2732), Point(5757, 2739), Point(5741, 2742), Point(5727, 2745), Point(5712, 2743), Point(5699, 2737), Point(5685, 2728), Point(5678, 2712), Point(5666, 2700), Point(5653, 2689), Point(5642, 2679), Point(5633, 2672), Point(5628, 2666), Point(5618, 2656), Point(5612, 2645), Point(5607, 2631), Point(5595, 2619), Point(5582, 2610), Point(5571, 2604), Point(5559, 2596), Point(5548, 2596), Point(5536, 2597), Point(5524, 2599), Point(5512, 2599)];
SPS_WalkPath(myPath);
end;

procedure MSI_RandomFKey;
var
i, randInt, randKey, currTab: Integer;
keys: array[0..4] of Word;
begin
currTab := GetCurrentTab();

keys[0] := VK_F1;
keys[1] := VK_F2;
keys[2] := VK_F3;
keys[3] := VK_F4;
keys[4] := VK_F5;

randInt := Random(6);

case randInt of
0..4:
begin
KeyDown(keys[randInt]);
wait(35+random(85));
KeyUp(keys[randInt]);
end;

else
for i := 1 to 3 do
begin
randKey := Random(5);
KeyDown(keys[randKey]);
wait(35+random(85));
KeyUp(keys[randKey]);
end;
end;
wait(75+random(100));
GameTab(currTab);
end;
Function Eat(What: String): Boolean;
var
I: Integer;
begin
Result := False;
If Not LoggedIn then Exit;
if (foodnumber=1) then Exit;
if (HPPercent < 70) then
If InvEmpty then Logout
else
for i := 1 to 28 do
begin
if ExistsItem(i) then
InvMouse(I, 3);
if IsUpText(What) then
begin
ClickMouse2(True);
Wait(RandomRange(350, 525));
Result := True;
Exit;
end else
end;
end;


procedure GAntiBan;
begin
writeln('Choosing random antiban');
case random(11) of
0 : begin
GameTab(27);
Wait(randomrange(400,800));
end;
1 : begin
RandomMovement;
end;
2 : begin
MSI_RandomFKey;
end;
3 : begin
RandomRClick;
end;
4 : begin
end;
5 : begin
HoverSkill(skill_strength,false);
end;
6 : begin
HoverSkill(skill_hitpoints,false);
Wait(randomrange(300,600));
end;
7 : begin
GameTab(23);
end;
8 : begin
PickUpMouse;
end;
9 : begin
Wait(randomrange(1000,2000));
end;
10 : begin
HoverSkill('attack',false);
end;
end;
Wait(randomrange(500,1000));
end;

Procedure LoadBMP;
begin
BMP := BitmapFromString(517, 143, 'meJzsvWuQHMeZLYYIzE4gZqJ6' +
'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' +
'SZ9G9Sawuz');

end;
procedure LoadVars;
begin
Drops:=['old charm','ffigy', 'rimson charm', 'reen charm', 'lue charm']

end;

Procedure XPcalc;
Begin
Exp := (Kills*266);
End;

Procedure XPhour;
Begin
XPcalc;
XPH := Round((Exp * 3600) / (GetTimeRunning / 1000));
End;

Procedure DoThePainting;
Begin
If Paint = 'Yes' then
begin
XPhour;
LoadBMP;
SMART_DrawBitmap(False, BMP, Point(0, 337));
SMART_DrawText(130, 395, UpCharsEx, '' +IntToStr(Kills)+ '', clRed);
SMART_DrawText(130, 420, UpCharsEx, '' +IntToStr(Exp)+ '', clRed);
SMART_DrawText(130, 445, UpCharsEx, ''+IntToStr(XPH)+'', clRed);
SMART_DrawText(325, 395, UpCharsEx,''+TimeRunning+' ', clRed);
SMART_DrawText(440, 420, UpCharsEx, ''+IntToStr(Charms)+'', clRed);
FreeBitmap(BMP);
end;
end;
Procedure Proggy;

begin
ClearDebug;
XPHour;
Writeln('********************************************');
Writeln('* |*/\GhoulerV4/\*| *');
Writeln('********************************************');
Writeln('*You have killed ' + IntToStr(Kills) + 'Ghouls');
Writeln('*And have Gained ' + IntToStr(Exp) + 'EXP');
Writeln('*And have Gained ' + IntToStr(XPH) + 'XP/H');
Writeln('*And have Picked up ' + IntToStr(Charms) + 'Charms');
Writeln('* Ran for ' + TimeRunning + '');
Writeln('********************************************');
end;

//Euphamism thanks, through YoHo
procedure SMART_DrawBitmapWithTextMulti(Clear: Boolean; Bitmap: Integer; BmpPlacement: TPoint; TP: TStringArray; Shadow: Boolean; TxtPlacement: TPoint; Font: string; Colour: TColor);
var
I, B, H, Pic, TPH, Numb: Integer;
Offset: TPoint;
TTP: TPointArray;
Canvas: TCanvas;
begin

if (not SMART_DebugSetup) then
SMART_SetupDebug();


TPH := High(TP);

Offset := IntToPoint(TxtPlacement.x - BmpPlacement.x, TxtPlacement.y - BmpPlacement.y);

Pic := CopyBitmap(Bitmap);

for I := 0 to TPH do
begin

TTP := LoadTextTPA(TP[i], SmallChars, H);

for B := 0 to High(TTP) do
begin

Numb := ((I + 1) * 13);

if Shadow then
try

FastSetPixel(Pic, TTP[b].x + 1 + Offset.x , TTP[b].y + Numb + 1 + Offset.y,131072);
except
end;

try

FastSetPixel(Pic, TTP[b].x + Offset.x, TTP[b].y + Numb + Offset.y, Colour);
except
end;
end;
end;

Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, BmpPlacement.x, BmpPlacement.y);
FreeBitmap(Pic);
end;


//credits to Flight for helping with this.
Function FindGhoul(Var X,Y: Integer): Boolean;
var
CTS,I,T,J: Integer;
TPA,T1,T2: TPointArray;
Box:TBox;
PBox: TPointArray;
ATPA:T2DPointArray;

begin
MarkTime(J);
repeat
Result := False;
CTS := GetColorToleranceSpeed;
PBox := TPAFromBox(IntToBox(240, 130, 290, 190));

ColorToleranceSpeed(2);

SetColorSpeed2Modifiers(0.20, 1.60);

FindColorsSpiralTolerance(MSCX, MSCY, T1,(11652298), MSX1, MSY1, MSX2, MSY2, 3);
FindColorsSpiralTolerance(MSCX, MSCY, T2,(11652298), MSX1, MSY1, MSX2, MSY2, 8);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
TPA := CombineTPA(T1,T2);
ATPA := TPAtoATPAEx(TPA,30,30);
SortATPAFrom(ATPA,Point(257,157));

For i := 0 to High(ATPA) do
begin
if (Length(TPA) < 1) then
Exit;
Box := GetATPABounds(ATPA);
SMART_DrawDotsEx(false, TPA, 65320);
MiddleTPAEx(ATPA[i],X,Y);
MMouse(X,Y,5,5);

if WaitUpText('ck Gho', 50) then
begin
GetMousePos(X, Y);
ClickMouse2(True);
Result := True;
SMART_ClearCanvasArea(Box);
Exit;
end else
Result := False;
end;
Until (TimeFromMark(J) > 3500);
End;
Function FindObjOnScreen(Up,Option:Array of String;Color,Tolerance1,Tolerance2:Integer;MC2:Variant;Hmod,Smod:Extended): Boolean;
var
X,Y:Integer;
CTS,I,T,J: Integer;
Box:TBox;
TPA,T1,T2,Pbox: TPointArray;
ATPA:T2DPointArray;

begin
MarkTime(J);
repeat
Result := False;
CTS := GetColorToleranceSpeed;
PBox := TPAFromBox(IntToBox(245, 135, 280, 185));

ColorToleranceSpeed(2);

SetColorSpeed2Modifiers(Hmod,Smod);

FindColorsSpiralTolerance(MSCX, MSCY, T1,(Color), MSX1, MSY1, MSX2, MSY2, Tolerance1);
FindColorsSpiralTolerance(MSCX, MSCY, T2,(Color), MSX1, MSY1, MSX2, MSY2, Tolerance2);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
TPA := CombineTPA(T1,T2);
ATPA := TPAtoATPAEx(TPA,20,20);
SortATPAFrom(ATPA,Point(257,157));

For i := 0 to High(ATPA) do
begin
if (Length(TPA) < 1) then
Exit;
Box := GetATPABounds(ATPA);
SMART_DrawBoxEx(False,IntToBox(Box.X1,Box.Y1,Box.X2,Box.Y2),65320);
SMART_DrawDotsEx(false, TPA, 65320);
MiddleTPAEx(ATPA[i],X,Y);
MMouse(X,Y,5,5);
if WaitUpTextMulti(Up, 400) then
begin
GetMousePos(X, Y);
ClickMouse2(MC2);
ChooseOptionMulti(Option);
SMART_ClearCanvasArea(Box);
Result := True;
Exit;
end;
end;
Until (TimeFromMark(J) > 3500);
End;

Function PickupCharms:Boolean;
Var
X, Y: Integer;
begin
If Charmer = False then Exit;
If Charmer = True then
begin
FindNormalRandoms;
If FindObjOnScreen(['ake', 'Take', 'ke', 'ak'],['harm'],6397359,4,8,False,0.38,0.55) Then
Begin
Wait(500);
writeln('You have found the some Charms!');
While IsMoving do
Wait(50);
FindNormalRandoms;
Wait(RandomRange(300,400));
Inc(Charms);
End;
end;
end;

procedure GetOutF;
begin
case random(2) of
0 : begin
KeyDown(VK_Tab);
wait(35+random(100));

wait(35+random(100));
KeyUp(VK_Tab);
wait(25+random(70));

wait(35+random(100));
end;
1 : begin
ExamineInv;
end;
end;
end;

procedure GMoveMouse;
begin
case random(4) of
0 : begin
mMouse(5,25,10,20);
end;
1 : begin
mMouse(250,150,40,40);
end;
2 : begin
mMouse(505,350,50,50);
end;
3 : begin
mMouse(30,315,20,40);
end;
end;
end;
//laakes
Procedure RAntiBan;
begin
Wait(randomrange(200,400));
case random(RandAmount) of
0 : begin
writeln('Random Wait AntiBan');
Wait(randomrange(1100,2500));
end;
1 : begin
GAntiBan;
end;
2 : begin
writeln('pickup mouse / GMoveMouse');
PickUpMouse;
Wait(randomrange(25,100));
GMoveMouse;
Wait(randomrange(250,300));
end;
3 : begin
writeln('Double GMoveMouse');
GMoveMouse;
Wait(randomrange(45,100));
GMoveMouse;
end;
end;
end;
//laake's
Procedure KillGhouls;
var
sX,sY,X,Y,J: Integer;
begin
Repeat
If FindGhoul(X,Y) then
Wait(1950);
Until UInFight or InFight;
If FindBlackChatMessage('omeone else is fighting') then begin
RandomThing;
GetOutF;
End;
If UInFight or Infight then
WriteLn('You are Ghouling this Ghoul!');
Inc(Kills);
begin
repeat
Proggy;
DoThePainting;
FindNormalRandoms;
Eat('Eat');
RAntiBan;
until (not UInFight) or (not OthersInFight) or (not LoggedIn)
end;
wait(randomrange(200,300));
end;

Procedure PickScroll;
Begin
If ChampionScroll = False then Exit;
If ChampionScroll = True then
Begin
FindObjOnScreen(['ake', 'Take', 'ke', 'ak'],['croll'],9621212,4,9,False,0.02,3.25);
End;
end;
Procedure PickEffigy;
Begin
If Effigy = 'No' then Exit;
If Effigy = 'Yes' then
Begin
FindObjOnScreen(['ake', 'Take', 'ke', 'ak'],['ffigy'],8290940,1,3,False,1.73,0.01);
End;
end;
procedure Startup;
begin
Smart_Server := 69;
Smart_Members:= true;
Smart_Signed := true;
Smart_SuperDetail := false;
SetupSRL;
RandAmount := 30;
MSpeed := 200;
DeclarePlayers;
LogInPlayer;
MouseSpeed := MSpeed;
wait(100+random(100));
end;

begin
Startup;
SetupChar;
LoadVars;
DoThePainting;
repeat
MarkTime(Z);
Repeat
Wait(500);
DoThePainting;
FindObjOnScreen(['Bank', 'ank', 'ooth'],['ank'],7567226,1,3,True,1.59,0.48);
Until DidRedClick or (TimeFromMark(Z) > 2500);
If DidRedClick then
repeat
Wait(50);
until BankScreen;
begin
Proggy;
DepositAll;
wait(50 + Random(250));
Proggy;
Withdraw(0, 0, 28);
wait(50 + Random(250));
Proggy;
Deposit(1,1,false);
wait(50 + Random(250));
Proggy;
CloseBank;
end;
ToGhouls;
repeat
DoThePainting;
Proggy;
KillGhouls;
DothePainting;
PickupCharms;
DoThePainting;
PickEffigy;
DoThePainting;
PickScroll;
DoThePainting;
until (hppercent<50);
ToBank;
DoThePainting;
Proggy;
FindNormalRandoms;
until not LoggedIn
writeln('stopping script');
Proggy;
TerminateScript;
end.

klamse

2012-07-16 00:52:53

From: Brandon
Here is my simba folder. Do whatever you want with it: http://www.mediafire.com/?dytrd9dr75midfb


Aww I was excited when I saw this, but the folder isn't on mediafire anymore. :(

iiNveRsioN

2012-07-16 01:00:20

From: iiNveRsioN
Hmm.. seems like I can't run more than one script of the same kind because when I try to it tries to use the other ones window.


^ It isn't even the same script anymore.. It just tried to start up my Yak-Killer in my mining window..

print

2012-07-16 01:02:13

what scripts r working can u link me to one? plzzi need to start botting right away

Brandon

2012-07-16 01:02:54

From: klamse
Aww I was excited when I saw this, but the folder isn't on mediafire anymore. :(


It's uploading.. I was fixing the Soulwars and bank chests. I decided to remove the pointer offset and just use the global constants. That way ChooseOption works and all functions work.

It's the only way I can get everything working without messing up other stuff.

Editing with the link in a sec

That's the updated version. I'll upload it to github too.

Esparno

2012-07-16 01:06:06

So Ggzz, first I want to thank you for the help for all of us, myself included. Second I wanted to ask if you could help me again with this script, I'm looking through the one you fixed that actually compiles and sort of works, and trying to get the unedited one to work, this time copying only the necessary stuff and not overwriting anything important.

Anything else you could help with regards to that would be most appreciated. But currently I can't even get it to compile.

So far beyond the obvious stuff at the top and the stuff near smart_server the only other thing I have found is a line of code dealing with what type of canvas to assign, so I am looking, just bad at it and tired.

P1ng

2012-07-16 01:10:05

This is a video and written tutorial of the absolute easiest way to get
back up and running after the 'social slayer' update.
This WILL work assuming you had everything working pre-update.

DOWNLOAD LINKS (Download both of these before commencing the video):
Simba 0.99 - http://nala.villavu.com/downloads/ma...i386-win32.exe
Brandon's Simba folder - http://www.mediafire.com/?5sfm1mcpd4gmam4

VIDEO:
http://www.youtube.com/watch?v=ROK9_XrrHWU

WRITTEN TUTORIAL:
- Download both Simba 0.99 and Brandon's Simba.zip
- Copy your 'Scripts' folder if you wish to keep them to somewhere safe.
- Uninstall simba using C:/Simba/unins000
- Go to C drive and delete 'Simba' folder if remains.
- Install Simba 0.99 (should have downloaded before with link provided).
- Move Simba.zip (Brandon's simba folder) to the C drive (require's admin permissions).
- Extract the zip.
- Yes to all file replacements.
- Open a new simba window.
- Copy this code into a blank document:
program new;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

SetupSRL;
end.
- Press run(Green triangle) on Simba.
- Be patient and wait until SMART successfully opens.

CREDITS:
I made the video myself but all real credits go to Brandon, Wizzup? and BenLand100
for actually getting things running again.

An official fix will be up soon, so if you guys can't follow that hold out
until it is commited to the auto-updater.
If you can't follow this video don't PM me, only God can help you.

Brandon

2012-07-16 01:18:10

Simba folder: http://www.mediafire.com/?5sfm1mcpd4gmam4

@ The guy fixing the ghouler script:

http://paste.villavu.com/raw/IDKMLFRqBUv9e8gd8vgd/

Esparno

2012-07-16 01:23:47

From: Brandon
Simba folder: http://www.mediafire.com/?5sfm1mcpd4gmam4

@ The guy fixing the ghouler script:

http://paste.villavu.com/raw/IDKMLFRqBUv9e8gd8vgd/


Thank you SO MUCH.

It's working but as soon as I log in it creates a new SMART window and acts like that window is where it expects to find stuff. It's weird but I can work with it. Again, thank you so much. If I could give you rep twice I would.

Also, what program do you use to compare two lengths of text so I can see what you changed?

EDIT:
I spoke too soon…


Error: Exception: The Box you passed to Rectangle doesn't have normal bounds: (458,129) : (456,127) at line 243

Oh well, thanks for trying.

Brandon

2012-07-16 01:28:15

From: Esparno
Thank you SO MUCH.

It's working but as soon as I log in it creates a new SMART window and acts like that window is where it expects to find stuff. It's weird but I can work with it. Again, thank you so much. If I could give you rep twice I would.

Also, what program do you use to compare two lengths of text so I can see what you changed?

EDIT:
I spoke too soon…


Error: Exception: The Box you passed to Rectangle doesn't have normal bounds: (458,129) : (456,127) at line 243
Oh well, thanks for trying.



If that box is out of bounds, the scripter put the wrong coordinates for the box. Just switch the values i guess.

As for the site it's called DiffChecker.com.

Esparno

2012-07-16 01:32:13

From: Brandon
If that box is out of bounds, the scripter put the wrong coordinates for the box. Just switch the values i guess.

As for the site it's called DiffChecker.com.



Would that be this line?


PBox := TPAFromBox(IntToBox(240, 130, 290, 190));

Brandon

2012-07-16 01:41:57

From: Esparno
Would that be this line?


PBox := TPAFromBox(IntToBox(240, 130, 290, 190));


That looks fine:

Open Globals.Simba go to line 611 and replace it with: SetTargetArray(SmartImageArray, 765, 565);

that will get rid of the error most likely.


So for anyone who decides to update to the latest temp fix.. follow this: http://villavu.com/forum/showpost.php?p=1070475&postcount=866

and open globals.simba and change line 611 to SetTargetArray(SmartImageArray, 765, 565);

That's it.

Esparno

2012-07-16 01:45:57

From: Brandon
That looks fine:

Open Globals.Simba go to line 611 and replace it with: SetTargetArray(SmartImageArray, 765, 565);

that will get rid of the error most likely.


Completely get rid of this line?
FreeTarget(SetTargetBitmap(BitmapFromClient(0, 52, 764, 551)));

EDIT: I did that and it still threw the same error after 30 seconds-ish. Don't worry about it, you're not obligated to get this script running. You've already done enough as is and I appreciate it.

IuseSimba2bot

2012-07-16 05:17:17

The moment of truth….

Can I get p1ng's herblore script to work…

Maybe…

EDIT… It went from spazzing out and not logging in, to managing to put my username in but not pass…..

Ill just wait for the update, it's 5am im giving up on botting tonight. lol

Foefoe

2012-07-16 05:28:56

From: p1ng
This is a video and written tutorial of the absolute easiest way to get
back up and running after the 'social slayer' update.
This WILL work assuming you had everything working pre-update.

DOWNLOAD LINKS (Download both of these before commencing the video):
Simba 0.99 - http://nala.villavu.com/downloads/ma...i386-win32.exe
Brandon's Simba folder - http://www.mediafire.com/?5sfm1mcpd4gmam4

VIDEO:
http://www.youtube.com/watch?v=ROK9_XrrHWU

WRITTEN TUTORIAL:
- Download both Simba 0.99 and Brandon's Simba.zip
- Copy your 'Scripts' folder if you wish to keep them to somewhere safe.
- Uninstall simba using C:/Simba/unins000
- Go to C drive and delete 'Simba' folder if remains.
- Install Simba 0.99 (should have downloaded before with link provided).
- Move Simba.zip (Brandon's simba folder) to the C drive (require's admin permissions).
- Extract the zip.
- Yes to all file replacements.
- Open a new simba window.
- Copy this code into a blank document:
program new;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

SetupSRL;
end.
- Press run(Green triangle) on Simba.
- Be patient and wait until SMART successfully opens.

CREDITS:
I made the video myself but all real credits go to Brandon, Wizzup? and BenLand100
for actually getting things running again.

An official fix will be up soon, so if you guys can't follow that hold out
until it is commited to the auto-updater.
If you can't follow this video don't PM me, only God can help you.


Plugin(irokiplugin32) has not been found

Edit: NVM, it seems to work now. Tyvm. <3
Edit: The colours/items are messed up!

RuneDragon

2012-07-16 06:54:27

Thank you Brandon. Got it working with SMART (run as administrator). With out SMART, InvCount did not worked.

P1ng

2012-07-16 07:36:54

From: Foefoe
Edit: The colours/items are messed up!


The colours and items would be the glitch found on the RuneScape client as well, nothing to do with SMART/Simba.

To fix this have a look on the RuneScape forums there are some fixes for it there, I haven't tried yet so I cannot say whether they work or not.

The moment of truth….

Can I get p1ng's herblore script to work…

Maybe…

EDIT… It went from spazzing out and not logging in, to managing to put my username in but not pass…..

Ill just wait for the update, it's 5am im giving up on botting tonight. lol


As for my herblore script just sit tight, I am about to post quickfixes for all of my scripts so that they can continue to run with this temporary fix for Simba and SMART.

Jos3ph

2012-07-16 08:12:56

 Unknown identifier 'Smart_Server' at line 219
Compiling failed.


That is what I seem to get; any advice?

Sawyer

2012-07-16 08:46:09

I have done everything, but SMART still won't load… It has been like 20 minutes and has not loaded yet.

P1ng

2012-07-16 09:01:59

From: po2n star
 Unknown identifier 'Smart_Server' at line 219
Compiling failed.


That is what I seem to get; any advice?


That is an error with the script with relation to the changes implemented to SMART and SRL with their new releases, read the thread here about what has changed:
http://villavu.com/forum/showthread.php?t=84334


From: Sawyer
I have done everything, but SMART still won't load… It has been like 20 minutes and has not loaded yet.


Did you follow the video/written tutorial I posted above in this thread? If so, you just need to be patient, I explicitly left my wait time in the video and didn't edit it out to show that you genuinely might need to wait a while before SMART will load up.

Brandon

2012-07-16 09:11:58

From: Sawyer
I have done everything, but SMART still won't load… It has been like 20 minutes and has not loaded yet.


Open C:/Simba/Simba.exe then open your script from the file menu and press run. That should work if it does not then your java needs fixing because smart cannot find it.

Sawyer

2012-07-16 09:18:05

Okay, Thanks. I'll try that.

Jos3ph

2012-07-16 09:23:18

From: p1ng
That is an error with the script with relation to the changes implemented to SMART and SRL with their new releases, read the thread here about what has changed:
http://villavu.com/forum/showthread.php?t=84334




Did you follow the video/written tutorial I posted above in this thread? If so, you just need to be patient, I explicitly left my wait time in the video and didn't edit it out to show that you genuinely might need to wait a while before SMART will load up.


How can I fix it? What can I do?

Sawyer

2012-07-16 09:36:02

Do you think Java 6 u33 would work better than Java 7 u5?

anuparockz

2012-07-16 09:48:57

I get this error when I try to run a script. I have done brandon's method and updated the script.

[Error] C:\Simba\Includes\srl/srl/misc/SmartParams.simba(37:8): Unknown identifier 'RSReady' at line 36
Compiling failed.

P1ng

2012-07-16 10:03:33

From: po2n star
How can I fix it? What can I do?


Where the script contains
  Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
or something to that effect..

Replace it with
  {$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

SetupSRL;

Jos3ph

2012-07-16 10:09:09

From: p1ng
Where the script contains
  Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
or something to that effect..

Replace it with
  {$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

SetupSRL;


Just highlight it and delete then paste in the new coding?


Is this what I need to replace?

begin
Smart_Server := 139;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;

Sawyer

2012-07-16 10:13:20

Compiled successfully in 406 ms.
SRL Compiled in 0 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Failed To Kill Client: 5784
Successfully executed.


How should I fix this error? I updated it and am using Brandon's simba.

Arepirpi

2012-07-16 10:13:34

Warning! You passed a wrong ye to a finder function: 525. The client has a height of 503, thus the ye is out of bounds. Setting the value to 502 (h-1) for now.

just ran a script and that warning keep messing up the debug box. Anyone can help?

hman4life

2012-07-16 10:13:59

i got that problem too chiken

Jos3ph

2012-07-16 10:16:25

Compiled successfully in 702 ms.
SRL Compiled in 0 msec
*** Smart Cannot Spawn Clients ***
Successfully executed.

I edited the script & it says this^

hman4life

2012-07-16 10:17:34

smart cant seem to put my username or pass in lol

RuneDragon

2012-07-16 10:21:00

From: po2n star
Compiled successfully in 702 ms.
SRL Compiled in 0 msec
*** Smart Cannot Spawn Clients ***
Successfully executed.

I edited the script & it says this^


Run As Administrator will fix it.

SMART still use "Safe Mode", so items may get deformed/invisible. Not sure they deformed it to find who is bot.

shstiger2009

2012-07-16 10:24:31

From: Arepirpi
Warning! You passed a wrong ye to a finder function: 525. The client has a height of 503, thus the ye is out of bounds. Setting the value to 502 (h-1) for now.

just ran a script and that warning keep messing up the debug box. Anyone can help?


From: hman4life
i got that problem too chiken


Chicken? Are you talking about the user above you?

DO THIS, it works 100% for that problem-

1. Go into your globals.simba
2. Search for 765, 503…and everywhere you see 503, change it to 565. Bam, problem gone.

From: po2n star
Compiled successfully in 702 ms.
SRL Compiled in 0 msec
*** Smart Cannot Spawn Clients ***
Successfully executed.

I edited the script & it says this^


Start Simba FIRST with NO script. Then open your script while you are inside Simba. Also make sure you Run as Administrator.

From: hman4life
smart cant seem to put my username or pass in lol


You didn't do something right then…

hman4life

2012-07-16 10:27:49

sorry im having the same problem as motor mouse was having from the first page id paste it but i cant seem to do that

anuparockz

2012-07-16 10:32:26

Is anyone else having this error?

[Error] C:\Simba\Includes\srl/srl/misc/SmartParams.simba(37:8): Unknown identifier 'RSReady' at line 36
Compiling failed.

supersayian2224

2012-07-16 10:55:54

Okay, SMART started working via the video tutorial! However, I still get this dang error whenever I try to start the script…

[Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40

is it perhaps the script itself?

f1fanatic

2012-07-16 11:04:47

From: supersayian2224
Okay, SMART started working via the video tutorial! However, I still get this dang error whenever I try to start the script…

[Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40

is it perhaps the script itself?



Are you using a script that uses ObjDTM?

Evaporation

2012-07-16 11:19:49

So, I'm trying to make a fix for a script, that will no longer be updated, and when I can get it stable enough to use, I'll ask for permission to release it from the owner. While compiling it, I get;
[Error] C:\Simba\Includes\srl/srl/misc/smart.simba(53:19): Invalid number of parameters at line 52

Go to Line 52, no text is there. Advice?

shstiger2009

2012-07-16 11:19:51

From: anuparockz
Is anyone else having this error?

[Error] C:\Simba\Includes\srl/srl/misc/SmartParams.simba(37:8): Unknown identifier 'RSReady' at line 36
Compiling failed.


That is a script error. Use another script.

From: supersayian2224
Okay, SMART started working via the video tutorial! However, I still get this dang error whenever I try to start the script…

[Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40

is it perhaps the script itself?


Not the script. Go to the top of your script where the writing is in RED…see where it says: {…paintsmart.simba}??

Change it to "Smartgraphics.simba" instead. There you go.

Jos3ph

2012-07-16 11:19:54

Got it!!

Thanks guys!!

shstiger2009

2012-07-16 11:20:51

From: po2n star
Got it!!

Thanks guys!!


Did what I say worked? Trying to see just for future problems.

paskalakki

2012-07-16 11:24:24

From: supersayian2224
Okay, SMART started working via the video tutorial! However, I still get this dang error whenever I try to start the script…

[Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40

is it perhaps the script itself?


i got the same :duh:

supersayian2224

2012-07-16 11:28:42

From: shstiger2009
That is a script error. Use another script.



Not the script. Go to the top of your script where the writing is in RED…see where it says: {…paintsmart.simba}??

Change it to "Smartgraphics.simba" instead. There you go.


Um, now the error just moved it to

Unknown identifier 'SmartGetDebugDC' at line 349

I'm using the Preemptile Runespan script.

Jos3ph

2012-07-16 11:32:22

From: shstiger2009
Did what I say worked? Trying to see just for future problems.


Trail & error says I have to open up a simba with no script then open the script & run it…its werid I have no clue why but YES what you said does work.

vladko78

2012-07-16 12:03:56

[Error] C:\Simba\Includes\SRL/SRL/Misc/SMART.simba(53:19): Invalid number of parameters at line 52

is this script issue?

Jos3ph

2012-07-16 12:14:11

The error I am now getting is my runes don't have a icon & I am in safe mode…

footballjds

2012-07-16 12:29:37

From: po2n star
The error I am now getting is my runes don't have a icon & I am in safe mode…


I saw somewhere on the rs official forums about deleting your cache. This didn't work for me… maybe try software mode?

Jos3ph

2012-07-16 12:43:10

From: footballjds
I saw somewhere on the rs official forums about deleting your cache. This didn't work for me… maybe try software mode?


That doesnt seem to work for me…. :Z

Werid…Script doesn't click on bank; its off by a little bit, can anyone tell me what I can do?

Brandon

2012-07-16 12:53:19

From: po2n star
That doesnt seem to work for me…. :Z

Werid…Script doesn't click on bank; its off by a little bit, can anyone tell me what I can do?


Have the items in your inventory before logging in.. That's actually jagex's fault not SRL's.

Jos3ph

2012-07-16 12:54:12

From: Brandon
Have the items in your inventory before logging in.. That's actually jagex's fault not SRL's.


So it can't bank huh?

footballjds

2012-07-16 12:54:28

is anyone able to get safe mode to work without glitching?
Is anyone able to use software mode to bot?

Okea

2012-07-16 13:01:18

Compiled successfully in 359 ms.
SRL Compiled in 0 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Failed To Kill Client: 5144
Successfully executed

Keep getting this no matter what solution I try on this thread :(

Any more suggestions?

Sawyer

2012-07-16 13:03:44

I had the same error.

Brandon

2012-07-16 13:10:53

From: po2n star
So it can't bank huh?


It can bank. Items in the bank isn't glitched but items in the inventory are. So first withdraw all the items your script needs then logout.. log back in and you can deposit them and start your script. It works.

xx2kyle2xx

2012-07-16 13:33:06

My script loads up, Just smart seems to be lower because my mouse cant find anything or click anything, wont even log me on. and it is stuck in safe mode. What do I do?

RuneDragon

2012-07-16 14:10:51

Anyone noticed there is no safe mode while you play in browser ? Did they removed safe mode to fix item bug ?

Jowston

2012-07-16 14:15:25

Followed the instructions and vid guide that Brandon provided, yet I'm getting an error of missing plugins.. completely removed simba and used all links provided by Brandon..

Any ideas what I'm doing wrong?

Everything in updated and I'm trying to use Narcles Smelter

Jos3ph

2012-07-16 14:32:56

From: Brandon
It can bank. Items in the bank isn't glitched but items in the inventory are. So first withdraw all the items your script needs then logout.. log back in and you can deposit them and start your script. It works.


the script seems to be way off, it doesn't click on the bank; it moves about 2inches away from bank when clicking.

hackingislol133

2012-07-16 14:43:20

From: po2n star
the script seems to be way off, it doesn't click on the bank; it moves about 2inches away from bank when clicking.


most scripts call on the banking functions in the api.

klamse

2012-07-16 14:44:40

If I have a procedure that withdraws pure essence, how would I change the coordinates? Here's the code:
Procedure WEssence;
Begin
MouseBox(441,100,458,114,0);
Wait(45 + Random(15));
WaitOption('All',1000);
End;

I realize because the coordinates are hard coded, they go about 50 px above, correct? I'm not sure where the Y value in "(441,100,458,114,0)" is.

I looked at it again, and it looks like this is a function that draws a box around where the pure essence is. I assume I subtract 50 from the first four values? I could be completely wrong. If I am, I'll try to find the procedure that withdraws essence.

Sawyer

2012-07-16 14:55:27


It stays like this and SMART never opens.

Abu

2012-07-16 14:56:01

From: klamse

I realize because the coordinates are hard coded, they go about 50 px above, correct? I'm not sure where the Y value in "(441,100,458,114,0)" is.


Second and fourth co-ordinates are y co-ordinates.

whisper133

2012-07-16 14:59:39

I did everything on the video and when i pressed run, i got this message:

Exception in Script: Plugin(libsmartremote32) has not been found

and on the console window i get this:
Plugin irokiplugin already loaded: 0
The DLL "irokipplugin" doesn't set a memory manager.
Exception in Script: Plugin(libsmartremote32) has not been found

Can someone tell me what to do to fix this?

klamse

2012-07-16 15:03:20

From: abu_jwka
Second and fourth co-ordinates are y co-ordinates.


Thank you it's working now! Wow I think I might actually start coding some scripts now… I thought it was near impossible to code, but now it kinda is all coming together. I already have some ideas on what I wanna make. Thanks for your help everyone!

Jos3ph

2012-07-16 15:25:47

From: hackingislol133
most scripts call on the banking functions in the api.


How can I fix my script then?

Toxcicity

2012-07-16 15:52:24

Got simba/smart working well, it loads the script fine. I'm using a fletching script at the moment but the script is having problems withdrawing the longbows/bowstrings. Any ideas or things I can try to do to the script?

Tlachtli

2012-07-16 16:01:26

From: po2n star
How can I fix my script then?


Make a custom function for your script or find a workaround for what you're trying to do. For example, withdrawing from a static bank slot still works, even if the item glitches and is invisible; this is a good temporary fix for scripts that can't find items in the bank.

x44

2012-07-16 16:11:34

From: vladko78
[Error] C:\Simba\Includes\SRL/SRL/Misc/SMART.simba(53:19): Invalid number of parameters at line 52

is this script issue?


I'm having the same issue. Is there a fix for this?

speedster

2012-07-16 17:35:08

Well Brandon is a massive contributor… I learned a lot from him these past few days (so thanks Brandon ;) ), Now I am really curious with which solution will the official SRL release go with.

sickle

2012-07-16 18:35:54

EVERYBODY REP BRANDON FOR HIS EFFORTS! :) (and others too)

http://villavu.com/forum/usercp.php

p.s. I actually don't know myself how to do it. my noobish self looked in the user panel, but can someone tell us how exactly we can show our appreciation?

m3gaman3g3nd

2012-07-16 18:41:34

haha i did read this but was unsure cuz slayer in the title mis-directed me but yes hopefully there will be a fix soon if not already 1 …. was in the middle of making ess-mining script n stuff…

can sum 1 clearly point out what exactly jagex did? what was it? did they change colors, coordinates?

Austin

2012-07-16 18:58:42

K, I am currently botting now using ashamans sally hunter :) Credits go to Brandon and others for their help. Thanks

P1ng

2012-07-16 19:06:37

From: m3gaman3g3nd
haha i did read this but was unsure cuz slayer in the title mis-directed me but yes hopefully there will be a fix soon if not already 1 …. was in the middle of making ess-mining script n stuff…

can sum 1 clearly point out what exactly jagex did? what was it? did they change colors, coordinates?

They made that god awful bar that directs you to the forums and such part of the game-client thus screwing up lots of co-ordinates. There is also a temporary fix developed by Brandon (http://villavu.com/forum/showpost.php?p=1070475&postcount=866). This will never be the official fix for this though, that is currently being worked on here.

From: sickle
EVERYBODY REP BRANDON FOR HIS EFFORTS! :) (and others too)

http://villavu.com/forum/usercp.php

p.s. I actually don't know myself how to do it. my noobish self looked in the user panel, but can someone tell us how exactly we can show our appreciation?

Blue square with a tick next to every post. Find a post by Brandon. Click it. Fill out a comment on why you are repping them for that post and submit


From: speedster
Well Brandon is a massive contributor… I learned a lot from him these past few days (so thanks Brandon ;) ), Now I am really curious with which solution will the official SRL release go with.

this will be the official SRL release when it is done being developed. It is much less temporary and will set us a on a good path for future Jagex screw ups.


From: x44
I'm having the same issue. Is there a fix for this?

this is a working fix.

Tur moil

2012-07-16 19:14:37

Alright, it appears that my screen is shifted whenever I run a script. I'm on my ipad so I'm too lazy to read the above, but yeah. Smart keeps trying to click where the username place should be, but theres an ad showing for some reason(the screen is shifted?) so um yeah. How 2 fix pl0x

Esparno

2012-07-16 19:53:47

so i'm too lazy to read the above


gtfo

How 2 fix pl0x


on second thought, kill yourself

EDIT: Yea I know, I shouldn't be so harsh, but I spent so much time trying to get this to work with the help of Brandon to no avail. Idiot leechers like this just grind my gears.

EDIT2: Oh man, my first warning, I'm so proud

iGunXZ

2012-07-16 21:50:25

What if the script has multiple x and y coordinates? Will the script run after the ghetto fix?

Esparno

2012-07-16 22:40:48

From: iGunXZ
What if the script has multiple x and y coordinates? Will the script run after the ghetto fix?


Most likely all scripts will have to be changed in some fashion.

happycamper207

2012-07-16 23:38:52

When i try to extract zip in the c drive this error occurs c:/ simba zip: cannot create Simba/ Simba exe.
acces is denied
I have read somewhere in the fourms to run as administrator. Although im not sure if the is the issue here. If someone could help me it would be greatly appricated.

P1ng

2012-07-17 00:15:28

Yes, you need to have administrator permissions on your computer otherwise you will recieve an access denied error, fix that and it should work.
Also, for many processes in simba you will need to be an administrator

richymul

2012-07-17 00:46:37

You have the latest version of the script!
SRL Compiled in 0 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Failed To Kill Client: 4384
Successfully executed.

running as administrator and i get this. how do i fix this?

CoconutMangos

2012-07-17 01:03:54

Anyone know how to run multiple clients?

The second one is stuck at Smart is Currently Loading…

Silent

2012-07-17 01:17:24

From: CoconutMangos
Anyone know how to run multiple clients?

The second one is stuck at Smart is Currently Loading…


Run multiple Simbas. Unless you are on .99, then you shouldn't have to.

stray247

2012-07-17 01:40:45

Exception in Script: Plugin(irokiplugin32) has not been found

stray247

2012-07-17 01:41:46

and

Exception in Script: Plugin(libsmart32) has not been found

actually i got rid of both erros now and just have this:
[Error] C:\Simba\Includes\SRL/SRL/Misc/Smart.simba(53:19): Invalid number of parameters at line 52
Compiling failed.
when i load the fantastic fletcher

P1ng

2012-07-17 02:21:55

@Stray247: Follow this guide http://villavu.com/forum/showpost.php?p=1070475&postcount=866

Silent

2012-07-17 03:46:15

From: KLight
I'm trying to use this script: http://villavu.com/forum/showthread.php?t=78429

I get this compiler error: SMART Class
Invalid number of parameters at line 52.

(I can run other scripts like the MSI power miner just fine)

How can I fix this bandit script? Or does anyone know of another fighting script that is currently working?


Either disable SMART or modify it as shown in some of the previous posts to work with Simba 99 and SMART 7.2

YesMan

2012-07-17 04:01:29

Sorry for my ignorance, but I just got back from out of the country and the SMART doesn't work, is there any fix for this, like resize, so that the M.S.I and Scripts can work properly?
Does Simba 0.99 solves the problem?

Silent

2012-07-17 04:29:31

From: YesMan
Sorry for my ignorance, but I just got back from out of the country and the SMART doesn't work, is there any fix for this, like resize, so that the M.S.I and Scripts can work properly?
Does Simba 0.99 solves the problem?


Read first post, ghetto fix by Brandon works for most things if you are willing to rework the script you are trying to use. I think it works mostly without modifying for MSI.

Silent

2012-07-17 04:54:21

From: KLight
What are the consequences of disabling smart?


You won't be able to use your computer at the same time. It literally controls your mouse. Also you have to (obviously) have the RS screen open.

Megahit

2012-07-17 06:31:53

Ok I got it to work, but the script sadly doesn't. It does everything well until it gets to ''MakeitemMenu'' where it clicks abit higher than it needs to. Any clues on how to fix this?

P1ng

2012-07-17 06:36:38

From: KLight
I see. How do I disable smart? I searched this whole thread from page 1 and didn't find it.

Do I just go through the code putting comments on every line that says SMART?

[EDIT] I commented everything related to Smart, which allows the script to compile but then the script does nothing.


Without the use of SMART you will need to open up RuneScape in your browser then by dragging the green cross-hair onto your selected client to specify the window. Then you may hit run, otherwise the script will have no clue what window it is running in..

f1fanatic

2012-07-17 06:46:54

IsUpTextMultiCustom isn't working on one of my scripts..I have the same simba folder as Brandon with updated simba etc etc, is there something else I have to add?

Do I have to add this somewhere?


From: Wizzup?
For uptext on different coordinates (default is 7,7):


function rs_GetUpText: String; {$IFDEF LAPE}override;{$ENDIF}
begin
result := GetUpTextAtEx(7+foo, 7+bar, True);
end;



Or isn't this function working yet

damienjp

2012-07-17 07:37:52

a smart idea would be to update the OP with fixes instead of having to search thru 39 pages…

vinzone08

2012-07-17 10:59:19

From: damienjp
a smart idea would be to update the OP with fixes instead of having to search thru 39 pages…


Well the orginal post was edited 2 days ago, and does link to the "ghetto" fix by brandon that pretty much everyone is using.

From: YoHoJo
For the brave, ghetto fix here:
http://villavu.com/forum/showpost.php?p=1070137&postcount=752


Faab68

2012-07-17 11:26:23

I am fairly new to Simba, and i've downloaded it all.
I just don't know how to edit scripts for it to work, can someone give me some pointers with that? I need the script Quickherblore. I know it is a hard question, but can someone give me a working code for it? Or tell me how to edit it, so it runs smoothly? Would be really appreciated!!

Cokedrip

2012-07-17 11:31:16

From: Faab68
I am fairly new to Simba, and i've downloaded it all.
I just don't know how to edit scripts for it to work, can someone give me some pointers with that? I need the script Quickherblore. I know it is a hard question, but can someone give me a working code for it? Or tell me how to edit it, so it runs smoothly? Would be really appreciated!!




Try changing the Red Text line at the very top of the script: {$I SRL/SRL.SCAR}
to {$I SRL/SRL.SIMBA}

Faab68

2012-07-17 11:44:15

From: Cokedrip
Try changing the Red Text line at the very top of the script: {$I SRL/SRL.SCAR}
to {$I SRL/SRL.SIMBA}


I already tryed that, I just need to know in what part of the script i put this:


{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}

SetupSRL;
end.

Footy

2012-07-17 11:53:36

Why are you putting that in? Anyways, find the main loop(the last begin/end), copy everything inbetween the begin and end in your post, then Paste it at the top of the main loop, It would be helpful if we could see the script.

Joe

2012-07-17 12:13:37

Ghetto fix :D
TY Brandon, you is my homie now.

Faab68

2012-07-17 12:15:13

From: Foooty
Why are you putting that in? Anyways, find the main loop(the last begin/end), copy everything inbetween the begin and end in your post, then Paste it at the top of the main loop, It would be helpful if we could see the script.


Here's the script man! Imma eat dinner now, and i'll brb to look into it!


[PHP]Program QuickHerblore;
{$DEFINE SMART}
{$I SRL/SRL.SIMBA}
Var
firstMaterial, secondMaterial: Array of Integer;
WhereToBank: Variant;
Const
//==============================================================================
//===== Main Settings ======================================================

AccountLogin = ''; // Runescape Account Login
AccountPassword = ''; // Runescape Account Password
AccountPIN = ''; // Runescape Bank Pin
CleanOrPots = 'pots'; // 'Clean' : Grimy Herbs are firstMaterial
// 'Pots' : (Unf) Clean Herbs are firstMaterial, Water Vials secondMaterial
// (Finished) Non-edidable ingredient is firstMaterial
ClickingWait = 20; // Wait time for clicking for cleaning herbs
DebugMode = True;
World = 48;

Procedure DeclarePlayers;
begin
// [Row, Column] starts at 0, 0 in Bank
firstMaterial := [0, 0]; // [Row, Column] in Bank
WhereToBank := SRL_BANK_SW; // Bank where you want to run it at
// Full list added below
// — If doing pots —
secondMaterial := [0, 1]; // [Row, Column] in Bank

//===== SRL Supported Banks ================================================

// Bank_FE (Falador East Bank)
// Bank_FW (Falador West Bank)
// Bank_VE (Varrock East Bank)
// Bank_VW (Varrock West Bank)
// Bank_GE (Varrock GE Bank)
// Bank_DR (Draynor Bank)
// Bank_AK (Al-Kharid Bank)
// Bank_EV (Edgeville Bank)
// Bank_CT (Catherby bank)
// Bank_CM (Camelot bank)
// Bank_NA (North Ardougne bank)
// Bank_SA (South Ardougne bank)
// Bank_YN (Yanille bank)
// Bank_NG (North gnome bank)
// Bank_SG (South gnome bank)
// Bank_WG (Warrior guild bank)
// Bank_FG (Fishing guild bank)
// SRL_BANK_SW (Soul Wars chest)
// SRL_BANK_CW (Castle Wars chest)
// SRL_BANK_B (Burthrope chest: outside warriors guild)
// SRL_BANK_GG (Gamer's Grotto: north of Falador)

//===== End Of Main Settings ===============================================
//==============================================================================
NumberOfPlayers(1);
CurrentPlayer := 0;
With Players[0] Do
Begin
Name := AccountLogin;
Pass := AccountPassword;
PIN := AccountPIN;
Active := True;
Member := True;
SRL_DisableIPLog := True;
End;
end;

Var
StartTime, S_TR, TimeToBreak, Cleaned, Mixed: Integer;
F_Count: Integer;
F_String: String;

Const
C_OrangeMakeText = 2070783;

Procedure Wat(W1, W2: Integer);
Begin
Wait(RandomRange(W1, W2));
End;

Function DoCondition(TimeOut, WaitPer: Integer; Funct: Function: Boolean; Condition: Function: Boolean; Normal: Boolean): Boolean;
Var
T: Integer;
Begin
T := GetSystemTime + TimeOut;
If Normal Then
Begin
Repeat
Funct();
If (not Condition()) Then Wait(RandomRange(WaitPer, Round(WaitPer * 1.5)));
If (GetSystemTime > T) Then Exit;
Until(Condition())
End Else Begin
Repeat
Funct();
If Condition() Then Wait(RandomRange(WaitPer, Round(WaitPer * 1.5)));
If (GetSystemTime > T) Then Exit;
Until(Not Condition())
End;
Result := True;
End;

Function MakeItemMenu(TimeOut: Integer): Boolean;
Var
X, Y, T: Integer;
Begin
If Not LoggedIn Then Exit;
Result := FindColorSpiralTolerance(X, Y, C_OrangeMakeText, MCX1, MCY1, MCX2, MCY2, 10);
If Not Result Then
Begin
T := GetSystemTime + TimeOut;
Repeat
If Not LoggedIn Then Exit;
Result := FindColorSpiralTolerance(x, y, C_OrangeMakeText, MCX1, MCY1, MCX2, MCY2, 10);
Wait(100);
If (GetSystemTime > T) Then Exit;
Until(Result)
End;
End;

Function CustomLogin: Boolean;
Begin
Result := LoggedIn;
If Result Then Exit;
If Not LobbyScreen Then
Begin
Logout;
If Not LoginPlayerToLob Then Exit;
End;
If ChangeWorld(World) Then
Result := True;
SetAngle(SRL_ANGLE_HIGH);
End;

procedure Debug(Message: String);
begin
if DebugMode then Writeln(Message);
end;

Function LogMeIn: Boolean;
Begin
Result := DoCondition(300000, 30000, @CustomLogin, @LoggedIn, True);
End;

Procedure EndScript(Msg: String);
Begin
CloseWindow;
Logout;
Writeln(Msg);
TerminateScript;
End;

Procedure FailCount(Reset: Boolean; FType: String);
Begin
If Reset Then
Begin
F_Count := 0;
F_String := '';
Debug('Reset Fail Count');
End Else Begin
F_Count := F_Count + 1;
F_String := F_String + FType + '. ';
Debug('Added 1 to Fail Count: ' + FType);
End;

If F_Count > 7 Then EndScript(F_String);
End;

Procedure Report;
begin
S_TR := S_TR + (GetSystemTime - StartTime);
StartTime := GetSystemTime;
if (not DebugMode) then ClearDebug;
Writeln('____________Smurgs QuickHerblore V1.04_______________');
Writeln('');
If LowerCase(CleanOrPots) = 'clean' Then
Writeln('Herbs Cleaned: ' + IntToStr(Cleaned) + ' (' + IntToStr(Round(Cleaned div (S_TR div 1000.0 div 60.0 div 60.0))) + ' herbs/hr)');
If LowerCase(CleanOrPots) = 'pots' Then
Writeln('Pots Mixed: ' + IntToStr(Mixed) + ' (' + IntToStr(Round(Mixed div (S_TR div 1000.0 div 60.0 div 60.0))) + ' pots/hr)');
Writeln('Time running: ' + MSToTime(Round(S_TR), 0));
Writeln('Time until break: ' + MSToTime(TimeToBreak - GetSystemTime, 0));
Writeln('_____________________________________________________');
end;

Function BreakTime: Boolean;
begin
Result := (GetSystemTime > TimeToBreak);
end;

Procedure TakeBreak;
begin
Writeln('Time for a break');
S_TR := S_TR + (GetSystemTime - StartTime);

If BankScreen Then
DoCondition(10000, 1000, @CloseBank, @BankScreen, False);
DoCondition(30000, 5000, @ExitToLobby, @LobbyScreen, True);
Wait(RandomRange(30 * 1000, 60 * 1000));
DoCondition(30000, 5000, @CustomLogin, @LoggedIn, True);
TimeToBreak := GetSystemTime + (600 * 60 * 1000) + RandomRange((-5 * 60 * 1000), (5 * 60 * 1000));

StartTime := GetSystemTime;
end;

procedure Mose(X, Y, Xr, Yr: Integer; Button: Boolean);
var
B, C: Integer;
iButton: Integer;
begin
MMouse(X + RandomRange(-Xr, Xr), Y + RandomRange(-Yr, Yr), 0, 0);
Wat(ClickingWait, Round(ClickingWait * 1.2));

If Button Then
iButton := mouse_left
Else
iButton := mouse_right;

GetMousePos(B, C);
HoldMouse(B, C, iButton);
Wait(RandomRange(50, 70));
GetMousePos(B, C);
ReleaseMouse(B, C, iButton);
Wat(ClickingWait, Round(ClickingWait * 1.2));
end;

Function BankIt: Boolean;
Var
N, T: Integer;
Begin
If Not LoggedIn Then Exit;
For N := 0 to 3 Do
Begin
If BankScreen then Break;
If OpenBank(WhereToBank, True, True) Then Break;
If N = 3 Then Exit;
End;
If InvCount > 0 Then DepositAll;
Case LowerCase(CleanOrPots) Of
'clean': Begin
Writeln(GetBankItemAmount(firstMaterial[1], firstMaterial[0]));
If (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) <= 28) Then
Begin
T := GetSystemTime + 3000;
Repeat
Wait(250);
If GetSystemTime > T Then
Begin
FailCount(False, '0 materials, first slot! ');
CloseBank;
Exit;
End;
Until (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) > 28)
End;
For N := 0 to 3 Do
Begin
If Withdraw(firstMaterial[1], firstMaterial[0], 0) Then Break;
If N = 3 Then Exit;
End;
End;
'pots': Begin
Writeln(GetBankItemAmount(firstMaterial[1], firstMaterial[0]));
If (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) <= 14) Then
Begin
T := GetSystemTime + 3000;
Repeat
Wait(250);
If GetSystemTime > T Then
Begin
FailCount(False, '0 materials, first slot! ');
CloseBank;
Exit;
End;
Until (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) > 14)
End;
For N := 0 to 3 Do
Begin
If Withdraw(firstMaterial[1], firstMaterial[0], 14) Then Break;
If N = 3 Then Exit;
End;
Writeln(GetBankItemAmount(secondMaterial[1], secondMaterial[0]));
If (GetBankItemAmount(secondMaterial[1], secondMaterial[0]) <= 14) Then
Begin
T := GetSystemTime + 3000;
Repeat
Wait(250);
If GetSystemTime > T Then
Begin
FailCount(False, '0 materials, second slot! ');
CloseBank;
Exit;
End;
Until (GetBankItemAmount(secondMaterial[1], secondMaterial[0]) > 14)
End;
For N := 0 to 3 Do
Begin
If Withdraw(secondMaterial[1], secondMaterial[0], 0) Then Break;
If N = 3 Then Exit;
End;
End;
End;
Repeat
CloseBank;
Wait(200);
Until Not BankScreen
T := GetSystemTime + 7500;
Repeat
Wait(25);
If GetSystemTime > T Then
Begin
FailCount(False, 'Didnt withdraw right! ');
Exit;
End;
Until InvCount = 28
Wait(RandomRange(100, 200));
Result := True;
End;

Function MakeThem: Boolean;
Var
N, X, Y, T, T2: Integer;
Order: TIntegerArray;
TB: TBox;
Begin
If Not LoggedIn Then Exit;
Repeat
CloseBank;
Until Not BankScreen
Gametab(tab_Inv);
Case LowerCase(CleanOrPots) Of
'clean': Begin
MouseSpeed := RandomRange(40, 50);
Order := [1, 5, 9, 13, 17, 21, 25, 26, 22, 18, 14, 10, 6, 2, 3, 7, 11, 15, 19, 23, 27, 28, 24, 20, 16, 12, 8, 4];
For N := 0 to 27 Do
Begin
TB := InvBox(Order[N]);
If FindColor(X, Y, srl_outline_black, TB.x1, TB.y1, TB.x2, TB.y2) Then
Mose(Round((TB.X1 + TB.X2) / 2), Round((TB.Y1 + TB.Y2) / 2), 5, 5, True);
End;
Cleaned := Cleaned + 28;
End;
'pots': Begin
MouseSpeed := RandomRange(40, 50);
InvMouse(14, mouse_left);
Wat(100, 250);
InvMouse(15, mouse_left);
If Not MakeItemMenu(5000) Then Exit;
N := InvCount;
Mose(260, 430, 20, 10, True);
T := GetSystemTime + 35000;
T2 := GetSystemTime;
Repeat
If InvCount < N Then
T2 := GetSystemTime;
N := InvCount;
Wat(50, 100);
If ((GetSystemTime > (T2 + 5000)) or (Not ExistsItem(28)) or (Not ExistsItem(14))) Then Break;
Until False
Mixed := Mixed + 14;
End;
Else
EndScript('CleanOrPots type wrong');
End;
Wait(RandomRange(150, 500));
Result := True;
If Result Then FailCount(True, '');
End;

Begin
ClearDebug;
Smart_Server := 21;
Smart_Members:= True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
if (not LogMeIn) then EndScript('Could not login pre-loop');
MakeCompass('W');
SetAngle(SRL_ANGLE_HIGH);
TimeToBreak := GetSystemTime + (330 * 60 * 1000) + RandomRange((-5 * 60 * 1000), (5 * 60 * 1000));
StartTime := GetSystemTime;
Repeat
If (Not LogMeIn) Then EndScript('Could not login in-loop');
If BreakTime Then TakeBreak;
If BankIt Then
Begin
FindNormalRandoms;
If MakeThem Then
Begin
Report;
FindNormalRandoms;
End Else
FailCount(False, 'Could not mix pots or clean herbs! ');
End Else
FailCount(False, 'Could not withdraw correctly! ');
Until False
TerminateScript;
End.[/PHP]

Footy

2012-07-17 12:21:59

for simba code, use
 tags. Ill take a look at it in a minute.

E:
Heres the script with the SMART stuff added in. Im not sure if the script still works after the update, a lot of stuff got screwed up.
[SIMBA]Program QuickHerblore;
{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}
Var
firstMaterial, secondMaterial: Array of Integer;
WhereToBank: Variant;
Const
//==============================================================================
//===== Main Settings ======================================================

AccountLogin = ''; // Runescape Account Login
AccountPassword = ''; // Runescape Account Password
AccountPIN = ''; // Runescape Bank Pin
CleanOrPots = 'pots'; // 'Clean' : Grimy Herbs are firstMaterial
// 'Pots' : (Unf) Clean Herbs are firstMaterial, Water Vials secondMaterial
// (Finished) Non-edidable ingredient is firstMaterial
ClickingWait = 20; // Wait time for clicking for cleaning herbs
DebugMode = True;
World = 48;

Procedure DeclarePlayers;
begin
// [Row, Column] starts at 0, 0 in Bank
firstMaterial := [0, 0]; // [Row, Column] in Bank
WhereToBank := SRL_BANK_SW; // Bank where you want to run it at
// Full list added below
// --- If doing pots ---
secondMaterial := [0, 1]; // [Row, Column] in Bank

//===== SRL Supported Banks ================================================

// Bank_FE (Falador East Bank)
// Bank_FW (Falador West Bank)
// Bank_VE (Varrock East Bank)
// Bank_VW (Varrock West Bank)
// Bank_GE (Varrock GE Bank)
// Bank_DR (Draynor Bank)
// Bank_AK (Al-Kharid Bank)
// Bank_EV (Edgeville Bank)
// Bank_CT (Catherby bank)
// Bank_CM (Camelot bank)
// Bank_NA (North Ardougne bank)
// Bank_SA (South Ardougne bank)
// Bank_YN (Yanille bank)
// Bank_NG (North gnome bank)
// Bank_SG (South gnome bank)
// Bank_WG (Warrior guild bank)
// Bank_FG (Fishing guild bank)
// SRL_BANK_SW (Soul Wars chest)
// SRL_BANK_CW (Castle Wars chest)
// SRL_BANK_B (Burthrope chest: outside warriors guild)
// SRL_BANK_GG (Gamer's Grotto: north of Falador)

//===== End Of Main Settings ===============================================
//==============================================================================
NumberOfPlayers(1);
CurrentPlayer := 0;
With Players[0] Do
Begin
Name := AccountLogin;
Pass := AccountPassword;
PIN := AccountPIN;
Active := True;
Member := True;
SRL_DisableIPLog := True;
End;
end;

Var
StartTime, S_TR, TimeToBreak, Cleaned, Mixed: Integer;
F_Count: Integer;
F_String: String;

Const
C_OrangeMakeText = 2070783;

Procedure Wat(W1, W2: Integer);
Begin
Wait(RandomRange(W1, W2));
End;

Function DoCondition(TimeOut, WaitPer: Integer; Funct: Function: Boolean; Condition: Function: Boolean; Normal: Boolean): Boolean;
Var
T: Integer;
Begin
T := GetSystemTime + TimeOut;
If Normal Then
Begin
Repeat
Funct();
If (not Condition()) Then Wait(RandomRange(WaitPer, Round(WaitPer * 1.5)));
If (GetSystemTime > T) Then Exit;
Until(Condition())
End Else Begin
Repeat
Funct();
If Condition() Then Wait(RandomRange(WaitPer, Round(WaitPer * 1.5)));
If (GetSystemTime > T) Then Exit;
Until(Not Condition())
End;
Result := True;
End;

Function MakeItemMenu(TimeOut: Integer): Boolean;
Var
X, Y, T: Integer;
Begin
If Not LoggedIn Then Exit;
Result := FindColorSpiralTolerance(X, Y, C_OrangeMakeText, MCX1, MCY1, MCX2, MCY2, 10);
If Not Result Then
Begin
T := GetSystemTime + TimeOut;
Repeat
If Not LoggedIn Then Exit;
Result := FindColorSpiralTolerance(x, y, C_OrangeMakeText, MCX1, MCY1, MCX2, MCY2, 10);
Wait(100);
If (GetSystemTime > T) Then Exit;
Until(Result)
End;
End;

Function CustomLogin: Boolean;
Begin
Result := LoggedIn;
If Result Then Exit;
If Not LobbyScreen Then
Begin
Logout;
If Not LoginPlayerToLob Then Exit;
End;
If ChangeWorld(World) Then
Result := True;
SetAngle(SRL_ANGLE_HIGH);
End;

procedure Debug(Message: String);
begin
if DebugMode then Writeln(Message);
end;

Function LogMeIn: Boolean;
Begin
Result := DoCondition(300000, 30000, @CustomLogin, @LoggedIn, True);
End;

Procedure EndScript(Msg: String);
Begin
CloseWindow;
Logout;
Writeln(Msg);
TerminateScript;
End;

Procedure FailCount(Reset: Boolean; FType: String);
Begin
If Reset Then
Begin
F_Count := 0;
F_String := '';
Debug('Reset Fail Count');
End Else Begin
F_Count := F_Count + 1;
F_String := F_String + FType + '. ';
Debug('Added 1 to Fail Count: ' + FType);
End;

If F_Count > 7 Then EndScript(F_String);
End;

Procedure Report;
begin
S_TR := S_TR + (GetSystemTime - StartTime);
StartTime := GetSystemTime;
if (not DebugMode) then ClearDebug;
Writeln('____________Smurgs QuickHerblore V1.04_______________');
Writeln('');
If LowerCase(CleanOrPots) = 'clean' Then
Writeln('Herbs Cleaned: ' + IntToStr(Cleaned) + ' (' + IntToStr(Round(Cleaned div (S_TR div 1000.0 div 60.0 div 60.0))) + ' herbs/hr)');
If LowerCase(CleanOrPots) = 'pots' Then
Writeln('Pots Mixed: ' + IntToStr(Mixed) + ' (' + IntToStr(Round(Mixed div (S_TR div 1000.0 div 60.0 div 60.0))) + ' pots/hr)');
Writeln('Time running: ' + MSToTime(Round(S_TR), 0));
Writeln('Time until break: ' + MSToTime(TimeToBreak - GetSystemTime, 0));
Writeln('_____________________________________________________');
end;

Function BreakTime: Boolean;
begin
Result := (GetSystemTime > TimeToBreak);
end;

Procedure TakeBreak;
begin
Writeln('Time for a break');
S_TR := S_TR + (GetSystemTime - StartTime);

If BankScreen Then
DoCondition(10000, 1000, @CloseBank, @BankScreen, False);
DoCondition(30000, 5000, @ExitToLobby, @LobbyScreen, True);
Wait(RandomRange(30 * 1000, 60 * 1000));
DoCondition(30000, 5000, @CustomLogin, @LoggedIn, True);
TimeToBreak := GetSystemTime + (600 * 60 * 1000) + RandomRange((-5 * 60 * 1000), (5 * 60 * 1000));

StartTime := GetSystemTime;
end;

procedure Mose(X, Y, Xr, Yr: Integer; Button: Boolean);
var
B, C: Integer;
iButton: Integer;
begin
MMouse(X + RandomRange(-Xr, Xr), Y + RandomRange(-Yr, Yr), 0, 0);
Wat(ClickingWait, Round(ClickingWait * 1.2));

If Button Then
iButton := mouse_left
Else
iButton := mouse_right;

GetMousePos(B, C);
HoldMouse(B, C, iButton);
Wait(RandomRange(50, 70));
GetMousePos(B, C);
ReleaseMouse(B, C, iButton);
Wat(ClickingWait, Round(ClickingWait * 1.2));
end;

Function BankIt: Boolean;
Var
N, T: Integer;
Begin
If Not LoggedIn Then Exit;
For N := 0 to 3 Do
Begin
If BankScreen then Break;
If OpenBank(WhereToBank, True, True) Then Break;
If N = 3 Then Exit;
End;
If InvCount > 0 Then DepositAll;
Case LowerCase(CleanOrPots) Of
'clean': Begin
Writeln(GetBankItemAmount(firstMaterial[1], firstMaterial[0]));
If (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) <= 28) Then
Begin
T := GetSystemTime + 3000;
Repeat
Wait(250);
If GetSystemTime > T Then
Begin
FailCount(False, '0 materials, first slot! ');
CloseBank;
Exit;
End;
Until (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) > 28)
End;
For N := 0 to 3 Do
Begin
If Withdraw(firstMaterial[1], firstMaterial[0], 0) Then Break;
If N = 3 Then Exit;
End;
End;
'pots': Begin
Writeln(GetBankItemAmount(firstMaterial[1], firstMaterial[0]));
If (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) <= 14) Then
Begin
T := GetSystemTime + 3000;
Repeat
Wait(250);
If GetSystemTime > T Then
Begin
FailCount(False, '0 materials, first slot! ');
CloseBank;
Exit;
End;
Until (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) > 14)
End;
For N := 0 to 3 Do
Begin
If Withdraw(firstMaterial[1], firstMaterial[0], 14) Then Break;
If N = 3 Then Exit;
End;
Writeln(GetBankItemAmount(secondMaterial[1], secondMaterial[0]));
If (GetBankItemAmount(secondMaterial[1], secondMaterial[0]) <= 14) Then
Begin
T := GetSystemTime + 3000;
Repeat
Wait(250);
If GetSystemTime > T Then
Begin
FailCount(False, '0 materials, second slot! ');
CloseBank;
Exit;
End;
Until (GetBankItemAmount(secondMaterial[1], secondMaterial[0]) > 14)
End;
For N := 0 to 3 Do
Begin
If Withdraw(secondMaterial[1], secondMaterial[0], 0) Then Break;
If N = 3 Then Exit;
End;
End;
End;
Repeat
CloseBank;
Wait(200);
Until Not BankScreen
T := GetSystemTime + 7500;
Repeat
Wait(25);
If GetSystemTime > T Then
Begin
FailCount(False, 'Didnt withdraw right! ');
Exit;
End;
Until InvCount = 28
Wait(RandomRange(100, 200));
Result := True;
End;

Function MakeThem: Boolean;
Var
N, X, Y, T, T2: Integer;
Order: TIntegerArray;
TB: TBox;
Begin
If Not LoggedIn Then Exit;
Repeat
CloseBank;
Until Not BankScreen
Gametab(tab_Inv);
Case LowerCase(CleanOrPots) Of
'clean': Begin
MouseSpeed := RandomRange(40, 50);
Order := [1, 5, 9, 13, 17, 21, 25, 26, 22, 18, 14, 10, 6, 2, 3, 7, 11, 15, 19, 23, 27, 28, 24, 20, 16, 12, 8, 4];
For N := 0 to 27 Do
Begin
TB := InvBox(Order[N]);
If FindColor(X, Y, srl_outline_black, TB.x1, TB.y1, TB.x2, TB.y2) Then
Mose(Round((TB.X1 + TB.X2) / 2), Round((TB.Y1 + TB.Y2) / 2), 5, 5, True);
End;
Cleaned := Cleaned + 28;
End;
'pots': Begin
MouseSpeed := RandomRange(40, 50);
InvMouse(14, mouse_left);
Wat(100, 250);
InvMouse(15, mouse_left);
If Not MakeItemMenu(5000) Then Exit;
N := InvCount;
Mose(260, 430, 20, 10, True);
T := GetSystemTime + 35000;
T2 := GetSystemTime;
Repeat
If InvCount < N Then
T2 := GetSystemTime;
N := InvCount;
Wat(50, 100);
If ((GetSystemTime > (T2 + 5000)) or (Not ExistsItem(28)) or (Not ExistsItem(14))) Then Break;
Until False
Mixed := Mixed + 14;
End;
Else
EndScript('CleanOrPots type wrong');
End;
Wait(RandomRange(150, 500));
Result := True;
If Result Then FailCount(True, '');
End;

Begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
SetupSRL;
DeclarePlayers;
if (not LogMeIn) then EndScript('Could not login pre-loop');
MakeCompass('W');
SetAngle(SRL_ANGLE_HIGH);
TimeToBreak := GetSystemTime + (330 * 60 * 1000) + RandomRange((-5 * 60 * 1000), (5 * 60 * 1000));
StartTime := GetSystemTime;
Repeat
If (Not LogMeIn) Then EndScript('Could not login in-loop');
If BreakTime Then TakeBreak;
If BankIt Then
Begin
FindNormalRandoms;
If MakeThem Then
Begin
Report;
FindNormalRandoms;
End Else
FailCount(False, 'Could not mix pots or clean herbs! ');
End Else
FailCount(False, 'Could not withdraw correctly! ');
Until False
TerminateScript;
End.

Megahit

2012-07-17 13:08:48

From: Foooty
for simba code, use
 tags. Ill take a look at it in a minute.

E:
Heres the script with the SMART stuff added in. Im not sure if the script still works after the update, a lot of stuff got screwed up.
[SIMBA]...


It doesn't work. Same issue as here -

From: Megahit
Ok I got it to work, but the script sadly doesn't. It does everything well until it gets to ''MakeitemMenu'' where it clicks abit higher than it needs to. Any clues on how to fix this?

creedgaming

2012-07-17 13:11:19

I got the fix to run with the code , but none of my scripts work… Are they all out of date now or ?

stray247

2012-07-17 14:34:15

i can get the rs page open and the "unknown" tab turns "play" off. then i open a new windo and try to load a script but then "smart" opens up in the next tap and the error:

[Error] C:\Simba\Includes\SRL/SRL/Misc/Smart.simba(53:19): Invalid number of parameters at line 52
Compiling failed.

pops up.

Sawyer

2012-07-17 14:50:19

I have updated Simba to 0.99, got all of Brandon's folders, and used MSI in my browser without SMART. I start the Dwarven Mine miner script, but it cannot find that I am in the mine.

klamse

2012-07-17 15:08:02

From: Sawyer
I have updated Simba to 0.99, got all of Brandon's folders, and used MSI in my browser without SMART. I start the Dwarven Mine miner script, but it cannot find that I am in the mine.


I didn't' think MSI had a Dwarven miner script.
Did you target the window by dragging the crosshairs from Simba over to the client window?

Sawyer

2012-07-17 15:12:38

I mean Mining guild miner. Oops :p I did. it would look up stats, ect., but it wouldn't recognize I was already in the mining guild.

Faab68

2012-07-17 15:41:48

From: Foooty
for simba code, use
 tags. Ill take a look at it in a minute.

E:
Heres the script with the SMART stuff added in. Im not sure if the script still works after the update, a lot of stuff got screwed up.




Footy, tyvm, u made me understand how to edit scripts, and now i've got a script working, thank you very much!

Jos3ph

2012-07-17 15:50:51

Still can't bank with my script; it doesn't click on the bank anymore its off by alot.

klamse

2012-07-17 16:02:13

From: po2n star
Still can't bank with my script; it doesn't click on the bank anymore its off by alot.


Change the coordinates of the procedures that are "off by a lot."
Add 50 to each Y-value coordinate. Then you have your fix. :)

Megahit

2012-07-17 16:40:43

From: klamse
Change the coordinates of the procedures that are "off by a lot."
Add 50 to each Y-value coordinate. Then you have your fix. :)


Thanks, got my script working now :)

L00PH0LE

2012-07-17 16:43:24

I got my script working for a few hours but then it quit and is now refusing the IgnoreBar; which it clearly didn't have a problem with a couple hours ago. :confused:

m3gaman3g3nd

2012-07-17 16:48:09

cant wait till the fix is in… man in the meantime i guess im going to have to bot on a different game… i tried gzz's ghetto fix n stuff but was to ghetto for me to try… lol just cant wait to use smart again… soo easy 2 debug on…

drew3170

2012-07-17 16:51:55

From: Faab68
Footy, tyvm, u made me understand how to edit scripts, and now i've got a script working, thank you very much!


Hey i also got the script workin for me but the safemode item glitch is messin me up. My herbs will disappear after a few loads of cleaning. I tried clearing my cache but its not helping. How did u fix this problem faab?

oligofren

2012-07-17 18:18:01

safemode glitch is intentional, jmod already posted that they are not going to fix it, they want us to use different video mode

Footy

2012-07-17 18:33:44

A fix to the safemode glitch has been posted already. Ill quote it to the best of my ability
1. Put all the items you are using during your gaming session(essence and runes if you are rc'ing) in your inventory
2. Log out to the lobby
3. Log back in, those items in your inv wont glitch for the rest of your playing session

drew3170

2012-07-17 18:38:17

From: Foooty
A fix to the safemode glitch has been posted already. Ill quote it to the best of my ability
1. Put all the items you are using during your gaming session(essence and runes if you are rc'ing) in your inventory
2. Log out to the lobby
3. Log back in, those items in your inv wont glitch for the rest of your playing session


Yea I tried this but for cleaning herbs I have to deposit the cleaned herbs and withdraw more grimy herbs. Using the following method I had grimy herbs in my inventory so they wouldn't glitch. At first my herbs in my inventory were visible but after a few deposits and withdrawals the grimy herbs glitched and became invisible. I guess for this kind of script it isn't possible at the moment… :(

ziellos

2012-07-17 18:43:31

From: Foooty
A fix to the safemode glitch has been posted already. Ill quote it to the best of my ability
1. Put all the items you are using during your gaming session(essence and runes if you are rc'ing) in your inventory
2. Log out to the lobby
3. Log back in, those items in your inv wont glitch for the rest of your playing session


Besides the fact that if you open the bank and deposit or withdraw anything it'll glitch again.

TPA & mouse to move to the position then uptext to find item, use instead of dtms/bitmaps for finding items that need to be deposited/withdrawn/clicked on/etc.

For example with RC, it'll need to do with filling pouches (since they sometimes go invis) depositing runes, withdrawing runes, withdrawing pots, withdrawing food, and using the items.

Faab68

2012-07-17 18:49:39

U just need a bot that depends on the clicking spot, so it clicks the first and second bank spot. Jeffrey's or p1ng herblore scripts are both scripts that work that way.

karlita007

2012-07-17 18:51:14

cant wait until the fix come out i tried the fix that is on the main page and seriously cant make it, anyways i think i messed up my simba.

Silent

2012-07-17 18:59:19

From: karlita007
cant wait until the fix come out i tried the fix that is on the main page and seriously cant make it, anyways i think i messed up my simba.


You can always just re-install :) Proper fix should be out very soon.

Tur moil

2012-07-17 19:48:16

You're right dude, I am a fucking sad no-life leecher. I should probably try to change that fact about me. I have no idea why I said that. Hopefully I can actually use my brain in the future.

happycamper207

2012-07-17 20:44:11

I'm currently running als LRC script and i can't get it to work nor do any of my other scripts, this is the error that occurs when i load it.

[Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40
Compiling failed.

klamse

2012-07-17 20:58:21

From: oligofren
safemode glitch is intentional, jmod already posted that they are not going to fix it, they want us to use different video mode


I really would like to see your source. ;)

P1ng

2012-07-17 21:09:23

From: happycamper207
I'm currently running als LRC script and i can't get it to work nor do any of my other scripts, this is the error that occurs when i load it.

[Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40
Compiling failed.


Change the red writing at the top of the script where it says
{$I SRL/SRL/Misc/PaintSmart.Simba}

to -
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

bballharry

2012-07-17 21:34:47

just wondering has anyone got a script to work on simba after slayer update i been trying to fix it myself but I can get the mouse to be in the correct position it is always a little off. Just wanted to know if I am missing an update or if simba currently just down.

m3gaman3g3nd

2012-07-17 22:22:50

how can i assemble a dll file for simba?

L00PH0LE

2012-07-17 23:13:35

From: oligofren
safemode glitch is intentional, jmod already posted that they are not going to fix it, they want us to use different video mode


I'm not sure about Simba, but C# can use OpenGL to a degree.

CoconutMangos

2012-07-17 23:13:54

From: Silent SPY
Run multiple Simbas. Unless you are on .99, then you shouldn't have to.


What extra code would I have had to add in order to run it?

klamse

2012-07-17 23:22:14

From: L00PH0LE
I'm not sure about Simba, but C# can use OpenGL to a degree.


I'm pretty sure the item glitch will be fixed. I highly doubt it's intentional.
There is nowhere that states that they put it there on purpose.

happycamper207

2012-07-17 23:33:09

iv'e been working on this fix for 20 hrs so far and im so close. This error keeps poping up on my scripts Compiled successfully in 1248 ms.
SRL Compiled in 16 msec
*** Smart Cannot Spawn Clients ***
Successfully executed
Also does anyone know when the offical fix will come out?

P1ng

2012-07-17 23:42:28

*** Smart Cannot Spawn Clients ***
I'm not sure what causes this error, but to fix it you need to start Simba by opening C:/Simba/Simba
opening the actual program without a script. Then from there File > Open and select your script from there then press Run as normal.
This error may also arise from not being run with administrator permissions.

And no-one can tell you when the official fix will be released, but when it is most scripts will probably need to be edited yet again..

This is the thread of the actual fix that Wizzup? is working on.. Not much point posting in it, the fix will be finished when it's finished. But until then you can keep a track of how it's progressing here http://villavu.com/forum/showthread.php?p=1071586#post1071586

Wikkedninja

2012-07-17 23:42:30

idk if i wana work on getto fix if we might actually have a smart wide fix sometime soon. Its been almost a week so wondering if it might be coming up? you guys think i should just go ahead and do the self fix or wait on the update

P1ng

2012-07-17 23:47:04

The errors are only within SRL functions, if you do the ghetto fix it will be running for the time being but you won't be able to bot without the scripting knowledge of how to fix scripts yourself. Alternatively, wait until the SRL functions are all fixed up and then wait for the script developers to update their scripts to suit.

QQu

2012-07-18 02:01:28

From: p1ng
*** Smart Cannot Spawn Clients ***
I'm not sure what causes this error, but to fix it you need to start Simba by opening C:/Simba/Simba
opening the actual program without a script. Then from there File > Open and select your script from there then press Run as normal.
This error may also arise from not being run with administrator permissions.

And no-one can tell you when the official fix will be released, but when it is most scripts will probably need to be edited yet again..

This is the thread of the actual fix that Wizzup? is working on.. Not much point posting in it, the fix will be finished when it's finished. But until then you can keep a track of how it's progressing here http://villavu.com/forum/showthread.php?p=1071586#post1071586


Thanks for that ping. Took me a while to figure out why it wasn't working!

Cokedrip

2012-07-18 03:17:41

1000th post anybody?

Silent

2012-07-18 03:22:47

From: Cokedrip
1000th post anybody?


Kind of a un-needed post in a thread that already has a lot of spam :unsure:.

Besides, yours was technically the 1001st post.

Cokedrip

2012-07-18 03:27:40

True, but I suppose it's still better than half the posts in this thread. And last time I got technical in these forums, it didn't work out so well.

On a related note, botting as normal thanks to ghetto fix and directed links, thanks!

iiNveRsioN

2012-07-18 04:06:07

From: happycamper207
iv'e been working on this fix for 20 hrs so far and im so close. This error keeps poping up on my scripts Compiled successfully in 1248 ms.
SRL Compiled in 16 msec
*** Smart Cannot Spawn Clients ***
Successfully executed
Also does anyone know when the offical fix will come out?



Run as administrator. It may take more than one try to get the error to go away. Keep running as administrator until it goes away.


Also, is it just me or is it not possible to run multiple clients with the temp fix? Attempting to run more than one(of any script, different or not) and it sometimes tries to use a window that is already being used.

EX; Press play on bot, wait until bot starts up and is running. Open another bot(separate simba window or same, doesn't matter), press play and sometimes it'll try to take over the window that is already botting without opening it's own.

Leonardo Da Vinci

2012-07-18 05:08:02

What about those of us with Ubuntu?
Will the ghetto fix still work?

zencius

2012-07-18 06:00:38

Can anyone help [Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' howt o fix this please

Nasus

2012-07-18 06:01:17

I've tried to fix the banking methods (scripts will misclick 'down' roughly fifty pixels…imagine that!), but I can't figure out how to do it. Has anybody been able to get banking working again, and if so, could you give me a heads up on what I have to change?

I'd THOUGHT it would be reasonably simple; open up OpenBankChest in the banking include, find the Y coordinates and add a "-50" in there, but that doesn't work because the Y coordinate is part of a TPointArray. If fixing this is genuinely complicated, and I'm not just missing the obvious solution, please let me know so I can stop trying to solve this on my own. It's a good learning process, but I'm not big on futility.

zencius

2012-07-18 06:01:41

please

richymul

2012-07-18 07:18:37

SRL Compiled in 0 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Failed To Kill Client: 344
Successfully executed.



how do i fix this?

Austin

2012-07-18 08:33:24

From: richymul
SRL Compiled in 0 msec
*** Fatal Error: Pairing Clients; Attempting To Kill All Clients ***
Failed To Kill Client: 344
Successfully executed.



how do i fix this?

http://villavu.com/forum/showthread.php?t=86387

Follow the instructions found here

Sneeky Z

2012-07-18 08:39:36

mine keeps saying Exception in Script: Plugin(libsmart32) has not been found
yet its there in my plugin folder..?

Master BAW

2012-07-18 09:17:47

wow this topic has 100+ pages now ? LoOOOOoOOOoOL

Austin

2012-07-18 09:30:00

From: MasterCrimez
wow this topic has 100+ pages now ? LoOOOOoOOOoOL

There's only 41 pages for me

happycamper207

2012-07-18 12:10:11

Yet another error has occured. Somone know how to fix this one. Compiled successfully in 1186 ms.
SRL Compiled in 15 msec
Please Wait.. Smart Is Currently Loading..
Successfully executed.

neeger

2012-07-18 12:24:29

Got everything to work, some simple mouse movement etc works fine, but somehow scrit stops here:
if (not(LoggedIn)) then
LogInPlayer;

Am I missing something?

mrlewcc

2012-07-18 12:40:54

I did the Ghetto fix however it didn't seem to work on anything, even my typing script, could someone help me pleaseee

Mr[S]

2012-07-18 13:11:32

Are there ANY scripts that work with the 0.99? :s

Austin

2012-07-18 14:12:02

From: Sharm
Are there ANY scripts that work with the 0.99? :s

Ashaman's Sally hunter works with 0.99 atm, but has a few bugs using the ghetto fix

EDIT:
foooty's maple Longbow maker works also

almosthere

2012-07-18 14:47:09

Well hopefully this works…

Mr[S]

2012-07-18 14:52:19

Ok ill try that see what happens :)

almosthere

2012-07-18 15:25:51

Well the ghetto fix doesnt have msi? is it suppose to be gone or it is a mistake.

Sawyer

2012-07-18 15:57:56

You must not have extracted it correctly.

Footy

2012-07-18 16:16:43

I have two scripts in my siggy that work, I didnt use any ghetto fix, But I'm sure it will work if u ghetto fixed it too. PM me if you need any other scripts, Im allways looking for stuff to do.

Seinfeld

2012-07-18 16:31:52

maybe ask powerbot for help. ;S

Wildo

2012-07-18 18:01:01

Everyone having problems, it is probably a good idea to just wait until there is an official fix/ update out and stop breaking your computer #Trolls

Nemesis3X

2012-07-18 18:24:13

From: Nasus
I've tried to fix the banking methods (scripts will misclick 'down' roughly fifty pixels…imagine that!), but I can't figure out how to do it. Has anybody been able to get banking working again, and if so, could you give me a heads up on what I have to change?

I'd THOUGHT it would be reasonably simple; open up OpenBankChest in the banking include, find the Y coordinates and add a "-50" in there, but that doesn't work because the Y coordinate is part of a TPointArray. If fixing this is genuinely complicated, and I'm not just missing the obvious solution, please let me know so I can stop trying to solve this on my own. It's a good learning process, but I'm not big on futility.


Strange, the banking is working fine for me :-) (Got 99 Magic 1 day ago with superheat) and I am on my way to 90+ hunter since I fixed ashamed Red salamander script today with my limited spare time :-)

richymul

2012-07-18 18:38:22

downloaded one of those plugin folders, got this "threat found C:\SIMBA\PLUGINS\SMARTREMOTE32.EXE"

Brandon

2012-07-18 19:19:48

From: richymul
downloaded one of those plugin folders, got this "threat found C:\SIMBA\PLUGINS\SMARTREMOTE32.EXE"


Definitely not mine. If you don't trust mine I have a tutorial on how to do it yourself here as well:
http://villavu.com/forum/showthread.php?p=1071936#post1071936

Also Benland100 has added the Open_Always fix to Smart as seen here: https://github.com/BenLand100/SMART/commit/735b052362c20f38f8c25118f7b0f44f9a26bd18

So there is no longer a need to edit smart. All you have to do is compile it like the guide shows.

Also you guys need to be watching this thread: http://villavu.com/forum/showthread.php?t=86214

For the official fix.

Esparno

2012-07-18 20:20:30

From: richymul
downloaded one of those plugin folders, got this "threat found C:\SIMBA\PLUGINS\SMARTREMOTE32.EXE"


What antivirus do you use because I also got Smartremote32.exe asking to have access to the internet when I first ran it, and I downloaded it from one of Brandon's links.

speedster

2012-07-18 20:40:36

What exactly is the OpenAlways fix ?:rolleyes:

From: Brandon
Definitely not mine. If you don't trust mine I have a tutorial on how to do it yourself here as well:
http://villavu.com/forum/showthread.php?p=1071936#post1071936

Also Benland100 has added the Open_Always fix to Smart as seen here: https://github.com/BenLand100/SMART/commit/735b052362c20f38f8c25118f7b0f44f9a26bd18

So there is no longer a need to edit smart. All you have to do is compile it like the guide shows.

Also you guys need to be watching this thread: http://villavu.com/forum/showthread.php?t=86214

For the official fix.

Brandon

2012-07-18 21:09:28

From: speedster
What exactly is the OpenAlways fix ?:rolleyes:


It's C++:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx

States that Open_Always will open a file always and if it does not exist, it will create such a file and open it if it has read-write access which is why Simba was previously ran as administrator whereas with such a flag, you may not have to run as admin. You also won't have to edit smart when following my tutorial. All you have to do now is compile it.

If you didn't understand, just click the link, scroll down and read the bold words. It has the definitions beside it. This is basically the fix to the Smart Pair Clients error.

h4jgyvis

2012-07-18 21:13:20

From: Law and Justice
What about those of us with Ubuntu?
Will the ghetto fix still work?


I'm using Ubuntu 10.04 and haven't gotten it to work yet. Using brandon's ghetto fix I can get SMART to load, and SRL to compile scripts, but some of the commands act odd (mouse moving SUPER slow, like 3 pixs a second, and it not being able to click on anything when it does reach the destination). I've just given up trying to bootstrap it and I'm going to wait for the official fix.

speedster

2012-07-18 21:49:50

I never got any errors of the sorts :wacko: . Anyway any bug fixes are always welcome :stirthepot: Good job :)

From: Brandon
It's C++:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx

States that Open_Always will open a file always and if it does not exist, it will create such a file and open it if it has read-write access which is why Simba was previously ran as administrator whereas with such a flag, you may not have to run as admin. You also won't have to edit smart when following my tutorial. All you have to do now is compile it.

If you didn't understand, just click the link, scroll down and read the bold words. It has the definitions beside it. This is basically the fix to the Smart Pair Clients error.

Nasus

2012-07-18 22:19:26

From: Nemesis3X
Strange, the banking is working fine for me :-) (Got 99 Magic 1 day ago with superheat) and I am on my way to 90+ hunter since I fixed ashamed Red salamander script today with my limited spare time :-)


Hmmm. Any specific bank you're using? I might not be able to FIX the banking, but I certainly know enough to switch WHERE the banking is.

Shino Iro

2012-07-18 23:56:46

Okay, got everything nice and running smoothly, no errors or anything. Well, except for the fact that Smart cannot spawn clients. I've been running Simba as an admin over and over again, is that the only thing I can do at this point? Running on Vista, opening Simba over and over again and pushing the green arrow and each time it tells me the same thing. So eventually it should spawn a client?

Brandon

2012-07-19 00:05:55

From: Shino Iro
Okay, got everything nice and running smoothly, no errors or anything. Well, except for the fact that Smart cannot spawn clients. I've been running Simba as an admin over and over again, is that the only thing I can do at this point? Running on Vista, opening Simba over and over again and pushing the green arrow and each time it tells me the same thing. So eventually it should spawn a client?


http://villavu.com/forum/showthread.php?t=86387

Follow it.

Shino Iro

2012-07-19 00:09:49

Thanks again Ggzz, I'll be back in a few once I finish following that to let you know if it worked for me. It probably will, you've been a damn lifesaver so far.

Shino Iro

2012-07-19 00:50:36

Now to edit the makefile so that it works with Mingw (Our compiler):



It should look like the below.. All you need to edit is the two lines that have the blue checkmarks near them. It should say g++ which is the compiler we are going to use. g++ is for C++ gcc is for C.
Use g++ since smart is written in C++.


Kay, I made it this far and now I'm stuck. I can't get the Makefile to work with MinGW, no matter how hard I try. I double click the Makefile and every time it asks me what to run, I go through the MinGW file looking for which application to choose to run it and each time it doesn't work. What do I choose when trying to setup the Makefile to work with MinGW? I keep trying different ones and none of them work, it merely loads a prompt box for half a second then disappears as if nothing happened.

Brandon

2012-07-19 02:21:43

From: Shino Iro
Kay, I made it this far and now I'm stuck. I can't get the Makefile to work with MinGW, no matter how hard I try. I double click the Makefile and every time it asks me what to run, I go through the MinGW file looking for which application to choose to run it and each time it doesn't work. What do I choose when trying to setup the Makefile to work with MinGW? I keep trying different ones and none of them work, it merely loads a prompt box for half a second then disappears as if nothing happened.


LOL! Mingw is a compiler! Not a text editor. A makefile is just a text file.

Open the makefile with wordpad or notepad++ or any text editor. Notepad is bad by the way. Notepad++ is the best but just use wordpad if u don't have it. Edit the file like the diagrams show using a text editor.

L00PH0LE

2012-07-19 02:24:31

From: klamse
I'm pretty sure the item glitch will be fixed. I highly doubt it's intentional.
There is nowhere that states that they put it there on purpose.


They also stated they have no intention of fixing it. So, it seems pretty intentional.

oligofren

2012-07-19 02:25:17

keep getting
Error: Exception: TMWindow.ReturnData: The parameters passed are wrong; xs,ys 0,0 width,height 766,553 at line 525
can't figure out what is wrong, seems globals.simba

nvm, updating srl solved this error

Shino Iro

2012-07-19 02:46:20

Still getting the same thing, even after I moved the new plugins to Simba. Am I doing something wrong or what? :I

Arepirpi

2012-07-19 02:56:05

From: L00PH0LE
They also stated they have no intention of fixing it. So, it seems pretty intentional.


Can you give us the source? if its true then it pretty sucks…

oligofren

2012-07-19 03:16:56

From: Arepirpi
Can you give us the source? if its true then it pretty sucks…


it was on rs forums jmods said that they were not going not fix the safe mode bug, can't give qfc, probably the thread already was eaten by page51 monster

Leonardo Da Vinci

2012-07-19 06:06:49

I honestly didn't think we'd still be waiting for the fix.
I'm not complaining. It's free.
But I just didn't think it would take this long.

creedgaming

2012-07-19 06:14:20

From: Law and Justice
I honestly didn't think we'd still be waiting for the fix.
I'm not complaining. It's free.
But I just didn't think it would take this long.


I'm sure i'll get some more haters onto my "standing" or whatever but i dont rly care , why not use powerbot in meantime while they work on a fix… I am… ;)

Leonardo Da Vinci

2012-07-19 06:23:52

From: creedgaming
I'm sure i'll get some more haters onto my "standing" or whatever but i dont rly care , why not use powerbot in meantime while they work on a fix… I am… ;)


I don't trust it, I'm too paranoid.
I only trust simba really…

supersayian2224

2012-07-19 10:57:50

Thanks to p1ng, I got it actually compiled. However, it has trouble recognizing it's even logged in … it tried to type my password ingame LOL. THis is for the preemptile runespan.

zirokke

2012-07-19 12:22:30

zzz..

speedster

2012-07-19 12:42:48

From: L00PH0LE
They also stated they have no intention of fixing it. So, it seems pretty intentional.


Well we will have to learn and adapt, make scripts that run without safe Mode.

We just need a little bit of guidance to get us started.

I myself heavily modified a script of mine and implemented alternatives methods so it won't rely on Invisible items - So far it works pretty smooth - Take that Jagex :f:

supersayian2224

2012-07-19 20:07:41

can someone help me fix the login? it sits at the login screen now and takes ages to type in the username, then eventually fails.

trevorm

2012-07-19 23:16:44

Procedure LogIn;
begin
Mouse(315, 211, 3, 3, 1);
wait(randomrange(200,300));
Typesend(Username);
wait(randomrange(200,300));
Mouse(320, 255, 2, 2, 1);
wait(randomrange(200,300));
Typesend(Password);
wait(randomrange(200,300));
Mouse(384, 298, 2, 2, 1);
wait(randomrange(1000,2000));
Mouse(369, 510, 3, 3, 1);
wait(randomrange(10000,15000));
end;

I use this for my broken scripts now hope this helps

creedgaming

2012-07-19 23:36:12

From: Law and Justice
I don't trust it, I'm too paranoid.
I only trust simba really…


Been using powerbot for months

runing low

2012-07-19 23:44:56

[Error] C:\Simba\Includes\srl/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40

SmartSetDebug(True);


tried the ghetto fix on the front page but im getting this error

creedgaming

2012-07-20 00:05:59

From: L00PH0LE
They also stated they have no intention of fixing it. So, it seems pretty intentional.


Well they've fixed my ores , so i think you were reading a bullshit post…

mortino

2012-07-20 01:02:08

anyone else getting "EIOS Unpaired" error? "paired thread terminated:rest" cant find a fix for this.

L B

2012-07-20 01:08:57

Any ETA on next version of Simba?

Wikkedninja

2012-07-20 02:21:12

From: L B
Any ETA on next version of Simba?


Read the OP there is no ETA just be patient it will come when it comes

SeanStar

2012-07-20 09:24:44

From: mortino
anyone else getting "EIOS Unpaired" error? "paired thread terminated:rest" cant find a fix for this.


Something is happening between smart and simba's connection. Might be lag, I'd try setting your process priorities higher.

Kampf Gewehr

2012-07-20 10:19:12

From: creedgaming
Well they've fixed my ores , so i think you were reading a bullshit post…


No, there was a forum post from a Jmod stating that they had no intention of fixing it… why would they fix your ores and nothing else?

[F]aceless

2012-07-20 10:25:59

how do I fix the deformed items? I runned a script on smart but it doesnt let me get out of safe mode.

print

2012-07-20 11:16:35

wow i like how this program has been down for 1 whole week now or more

zirokke

2012-07-20 11:18:11

From: print123
wow i like how this program has been down for 1 whole week now or more


yup it suckks!

Tlachtli

2012-07-20 11:42:16

From: print123
wow i like how this program has been down for 1 whole week now or more


It isn't down. It's been said many times by many people how to fix it, right here in this very thread. There are even step-by-step guides.

Ian

2012-07-20 12:13:10

Does anyone know if Brandon's ghetto fix works for linux?

Austin

2012-07-20 12:24:10

From: BMWxi
Does anyone know if Brandon's ghetto fix works for linux?

Umm, I don't think it does, I could be wrong though. If I am, someone please correct me ;)

Ian

2012-07-20 13:06:36

From: Brandon
It's uploading.. I was fixing the Soulwars and bank chests. I decided to remove the pointer offset and just use the global constants. That way ChooseOption works and all functions work.

It's the only way I can get everything working without messing up other stuff.

Editing with the link in a sec

That's the updated version. I'll upload it to github too.


The file isnt here either (Jul 20 2:04 atl time) Is there a new link?
Thanks for your previous help :)

EDIT: found it in P1ng's post. Thanks guys :)

graeme1995

2012-07-20 13:13:32

sorry for spamming, but can anyone fix this script. would be really appricaited.

program Uz3sStunAlch;
{$define SMART}
{$I SRL/SRL/misc/smart.simba}
{$I SRL/SRL.simba}
{$I SRL/SRL/misc/paintsmart.simba}


var
x, y, Stun, Alch, Xp, iMonsterChoice, MonsterColor, MonsterTolerance, Counter, countAlchFails, countStunFails, Stuns, Alchs, itemCount, fireRune, natRune, soulRune: Integer;


procedure DeclarePlayers;
begin
HowManyPlayers := 1; // This is set to the total amount of players, for now, just keep it set as 1
NumberOfPlayers(HowManyPlayers); // Don't touch
CurrentPlayer := 0; // This is the player to start with; the first player will always be 0

Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;// declare players

procedure SetupLogin;
begin
ClearDebug;

Smart_Server := 123;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LoginPlayer;
end;

Procedure Antiban;
Begin
Case Random(500) Of
0: Begin GameTab(tab_Stats) HoverSkill('Magic', False) GameTab(28); GameTab(tab_magic); End;
1: Begin SleepAndMoveMouse(7000 + Random(500)); End;
2: Begin GameTab(tab_Inv) ExamineInv; GameTab(28); GameTab(tab_magic); End;
4: Begin GameTab(Tab_Stats); Wait(3000 + Random(500)); GameTab(28); GameTab(tab_magic); End;
5: Begin GameTab(tab_Stats) HoverSkill('random', False); GameTab(28); GameTab(tab_magic); End;
End;
End;

procedure AntiRandom;
begin
FindNormalRandoms;
LevelUp;
Writeln('Checking for randoms');

end;

procedure MonsterColorFunc; //left here for future updates
begin
iMonsterChoice:= 2;
if(iMonsterChoice = 2) then
begin
MonsterColor:= 6053984;
MonsterTolerance:= 5;
end;
end;

Procedure LogOutFunc;
begin
WriteLn('Logging out');
Logout;
TerminateScript;
end;

Procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP, SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP.x + 1, TTP.y + Numb + 1,8388736);
FastSetPixel(Pic, TTP.x, TTP.y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;

procedure StunMonster;
begin
begin
counter := 0;
countStunFails := 0;
Stun := DTMFromString('mbQAAAHicY2VgYPjIxsDwBoi/AvFbIH4NxCZMDAz6QGwKxJZQWoZXhcFAQ5Xh9+/fDI9+/GJwivNiYAXqR8eMWDAYAAC8MA11');
repeat
wait(100 + random(100));
case countAlchFails of
10 : GameTab(tab_magic);
20 : begin AntiRandom; GameTab(tab_magic); wait(500 + random(100)); end;
30 : begin AntiRandom; GameTab(tab_magic); wait(500 + random(100)); end;
40 : begin AntiRandom; GameTab(tab_magic); wait(500 + random(100)); end;
70 : begin AntiRandom; GameTab(tab_magic); wait(500 + random(100)); end;
90 : begin AntiRandom; GameTab(tab_magic); wait(500 + random(100)); end;
140 : begin AntiRandom; GameTab(tab_magic); wait(500 + random(100)); end;
150 : begin WriteLn('Out of soul runes, logging out'); LogOutFunc; end;
end;
countAlchFails := countAlchFails + 1;
until(FindDTM(Stun, x, y, MIX1, MIY1, MIX2, MIY2));
if FindDTM(Stun, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MMouse(x,y,4,4);
Mouse(x, y, 4, 4, true);
repeat
wait(50 + random(50));
case counter of
20 : begin MakeCompass('N'); AntiRandom; GameTab(tab_magic); end;
30 : begin MakeCompass('W'); AntiRandom; GameTab(tab_magic); end;
40 : begin MakeCompass('E'); AntiRandom; GameTab(tab_magic); end;
70 : begin MakeCompass('S'); AntiRandom; GameTab(tab_magic); end;
90 : begin MakeCompass('rand'); AntiRandom; GameTab(tab_magic); end;
140 : begin MakeCompass('rand'); AntiRandom; GameTab(tab_magic); end;
150 : begin WriteLn('Cannot find zombie, logging out'); LogOutFunc; end;
end;
counter := counter + 1;

if (FindColorSpiralTolerance(x,y, MonsterColor, MSX1,MSY1,MSX2,MSY2, MonsterTolerance)) then
MMouse(x,y,4,4);
until(IsUpText('Zombie'));
begin
GetMousePos(x,y);
Mouse(x,y,1,1,true);
WriteLn('Found Monster');
Stuns:= Stuns + 1;
end;
end;
FreeDTM(Stun);
wait (100 + random(150));
PrintOnSmart(['Uz3s Alcher Stunner v1.03', 'Ran For: ' + TimeRunning, 'Exp: ' + IntToStr(Xp), 'Exp/Hour: ' + FloatToStr(Round((Xp * 3600) / (GetTimeRunning / 1000))), 'Stuns: ' + IntToStr(Stuns), 'Alchs: ' + IntToStr(Alchs)], Point (10,240), 391886);
end;
end;

procedure AlchItem;
begin
countAlchFails := 0;
itemCount := 0
Alch := DTMFromString('mlwAAAHicY2dgYHjNxsDwAojfs0HYz4D4HZQtzsTAIArEwkAsBcQSUCwExP3lrAyPfvxicP0pw+BuwMKQ7QPBv3//ZsAHGPFgKAAA154RaQ==');
repeat
wait(100 + random(100));
case countAlchFails of
10 : GameTab(tab_magic);
40 : begin AntiRandom; GameTab(tab_magic); wait(500 + random(100)); end;
90 : begin AntiRandom; GameTab(tab_magic); wait(500 + random(100)); end;
140 : begin AntiRandom; GameTab(tab_magic); wait(500 + random(100)); end;
150 : begin WriteLn('Out of fire or nature runes, logging out'); LogOutFunc; end;
end;
countAlchFails := countAlchFails + 1;
until(FindDTM(Alch, x, y, MIX1, MIY1, MIX2, MIY2) or FindColorSpiralTolerance(x,y,2992576, 606, 292, 631, 309, 81));

if FindDTM(Alch, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MMouse(x,y,4,4);
Mouse(x,y,4,4,true);
wait (50 + random (150));
end;
if(IsUpTextMultiCustom(['igh','evel'])) then
begin
GetMousePos(x,y);
Mouse(x,y,4,4,true);
end;

Alchs:= Alchs + 1;
Xp:= Xp + 155;
MMouse(620,348,3,3);
FreeDTM(Alch);
PrintOnSmart(['Uz3s Alcher Stunner v1.03', 'Ran For: ' + TimeRunning, 'Exp: ' + IntToStr(Xp), 'Exp/Hour: ' + FloatToStr(Round((Xp * 3600) / (GetTimeRunning / 1000))), 'Stuns: ' + IntToStr(Stuns), 'Alchs: ' + IntToStr(Alchs)], Point (10,240), 391886);
end;

procedure Xps;
begin
Alchs:= 0;
Stuns:= 0;
Xp:= 0;
end;

procedure ProgressReport;
begin
ClearDebug;
WriteLn('Uz3s Stunner Alcher v1.03');
WriteLn('Ran For: ' + TimeRunning);
WriteLn('Exp: ' + IntToStr(Xp));
WriteLn('Exp/Hour: ' + FloatToStr(Round((Xp * 3600) / (GetTimeRunning / 1000))));
end;

begin
SetupLogin;
ActivateClient;
Xps;
MonsterColorFunc;
//MakeCompass('rand');
GameTab(tab_magic)
repeat
if not LoggedIn then LogInPlayer;
Antiban;
StunMonster;
AlchItem;
ProgressReport;
until(false)
end.

JN13

2012-07-20 13:49:08

lol… failed attempt to help. such is life.

Footy

2012-07-20 15:04:16

@Graeme, Ill write a new one in a few days.
@All you peeps complaining, SRL isnt down, If you know how to fix it, or even just read instructions, you couldve been botting days ago. Or learn how to script. I was botting the day after the update. Learn how to script, its really rewarding.

jfishy

2012-07-20 15:12:12

From: graeme1995
sorry for spamming, but can anyone fix this script. would be really appricaited.

That's really big spam… not gonna lie.

Joe

2012-07-20 15:53:06

And just because this page is full of whiny babies that want an update because SMART isn't working and they can no longer bot and have failed in every attempt to fix it (including TV)…

WAAAAAAAAAAH!

graeme1995

2012-07-20 16:48:41

From: Foooty
@Graeme, Ill write a new one in a few days.
@All you peeps complaining, SRL isnt down, If you know how to fix it, or even just read instructions, you couldve been botting days ago. Or learn how to script. I was botting the day after the update. Learn how to script, its really rewarding.


thanks alot footy, do so as soon as possible, iam stuck at 98 magic lmfao.

trevorm

2012-07-20 16:50:59

SMART still works for me for most of my scripts that I made… when I try and update them it doesn't work

So maybe a hint for most of you out there learning the basics takes like 2 hours and after that your first working script will take you a couple more hours. So you have 4 hours spent knowing how to program some nice basic stuff instead of 4 hours looking through this thread every day. I don't know much about programming but I have been botting for almost 5 days since the update.

Thanks for all the support on how to update simba it has helped me a lot!!:p

iiNveRsioN

2012-07-20 17:07:43

From: graeme1995
thanks alot footy, do so as soon as possible, iam stuck at 98 magic lmfao.


Go spend a mil or two and burst some zombies and you'll be there within hours.

Or you could just use powerbot until the official fix for this is released.

710johnw

2012-07-20 18:54:54

[Error] C:\Simba\Scripts\LeetzAlcher version 1.2.simba(154:3): Unknown identifier 'Smart_server' at line 153
Compiling failed.

This is happening on all my scripts. was working fine a few minutes ago. any help?

almosthere

2012-07-20 20:43:39

ekkk… i did the ghetto fix and then i did some more with jdk java and then i did even more by trying (and i mean trying!) to fix the moss giant script to no avail… Why not just make the screen larger so it all fits, seems simple enough? the forums admins have said its a simple fix so why not just do the simple fix instead of something complicated.I believe it is unnecessary to require every script to be updated just so that they're a little more "undetectable"…

Fixing the scripts isnt my problem its giving me a headache that I cant do the real simple fix because it's completely out of my control.

Phantom866

2012-07-20 22:59:53

Even if they released a fix, Jagex still needs to fix the inventory icons.

Nasus

2012-07-20 23:02:10

From: trevorm
SMART still works for me for most of my scripts that I made… when I try and update them it doesn't work

So maybe a hint for most of you out there learning the basics takes like 2 hours and after that your first working script will take you a couple more hours. So you have 4 hours spent knowing how to program some nice basic stuff instead of 4 hours looking through this thread every day. I don't know much about programming but I have been botting for almost 5 days since the update.

Thanks for all the support on how to update simba it has helped me a lot!!:p


I really dislike this "Holier Than Thou" attitude. Personally, I have a script written, and it works fine–but SRL components (banking) do NOT work fine, and so I cannot make use of it. I'm not spamming up the thread with whining WHAR FIX, and I've even helped one of the better coders test some of his code, so I feel pretty comfortable saying:

Stop acting like everyone having problems is a whiny little leech. Some of us simply lack the skill required to fix everything, because we're not far enough along to solve all the problems encountered.

runing low

2012-07-20 23:17:21

41:33): Unknown identifier 'SmartGetDebugDC' at line 40
Compiling failed.


i did the ghetto fix and I'm coming up with that error
anyone get it to work?

need some help

Ian

2012-07-21 00:30:12

From: Nasus
I really dislike this "Holier Than Thou" attitude. Personally, I have a script written, and it works fine–but SRL components (banking) do NOT work fine, and so I cannot make use of it. I'm not spamming up the thread with whining WHAR FIX, and I've even helped one of the better coders test some of his code, so I feel pretty comfortable saying:

Stop acting like everyone having problems is a whiny little leech. Some of us simply lack the skill required to fix everything, because we're not far enough along to solve all the problems encountered.


Thanks Nasus, said better than I wanted to :)

GreenZombie

2012-07-21 04:54:02

From: BMWxi
Does anyone know if Brandon's ghetto fix works for linux?


Works like charm on by CentOs 5 with Wine.

Esparno

2012-07-21 06:15:14

So I had managed to get the script I was messing with working, then SRL or SPS or whatever updated because I had forgotten to turn off automatic updates and now everything's back to broken again. It can't even log in anymore and the stupid toolbar is back.

I had literally just hours before gotten it all working, and now I'm back where I started…

klamse

2012-07-21 09:25:59

From: Phantom866
Even if they released a fix, Jagex still needs to fix the inventory icons.


Yeah this is exactly what I'm thinking. :(

klamse

2012-07-21 09:27:06

From: Kampf Gewehr
No, there was a forum post from a Jmod stating that they had no intention of fixing it… why would they fix your ores and nothing else?


No there wasn't. I actually saw a Jmod saying they're investigating as much as they can to find a fix.

Footy

2012-07-21 09:29:21

That just means we cant use inv. DTMs. there are still reliable alternates to locating an item.

Arepirpi

2012-07-21 10:24:44

Can you tell me what are those alternatives?

[F]aceless

2012-07-21 10:27:25

how do I fix the deformed items? I runned a script on smart but it doesnt let me get out of safe mode.

Grihmm

2012-07-21 10:27:43

Check out the inventory.simba include.

Footy

2012-07-21 10:31:57

for now, we cant really fix the deformed items. Instead, we can assume inv slots and bank slots. What I mean by that is instead of searching for your axe in the bank, have it in slot 7 or something, then no matter how deformed the object looks the bot wil still get it. Same for inventory. Smart currently only runs in safe mode.

ThatGuy727

2012-07-21 12:42:27

I have gotten my Simba updated and my script to compile, but it won't even attempt to load SMART.

jfishy

2012-07-21 13:27:33

From: skyes
Sweet! I've just received my free minecraft giftcode!

>> Minecraftcodes.info <<


What the hell? Wrong forum -.-

RuneDragon

2012-07-21 13:39:57

From: Foooty
Smart currently only runs in safe mode.


Bot Nuke V2. Almost all bots use Safe Mode, they fucked up it. Some times item get deformed, some items invisible. Now they can see who plays happily with invisible items

NKN

2012-07-21 14:53:31

From: RuneDragon
Bot Nuke V2. Almost all bots use Safe Mode, they fucked up it. Some times item get deformed, some items invisible. Now they can see who plays happily with invisible items


I get broken items in Software, and OpenGL mode.

RuneDragon

2012-07-21 15:07:41

From: NKN
I get broken items in Software, and OpenGL mode.


You still get it ? I got it the day they updated. I have no problem in browser now. When i play in browser, there is no safe mode option in graphics setting, so most legits won't even know there is one unless they use old computer with no drivers.

ryanmd2012

2012-07-21 15:20:52

i was just on youtube and someone put a script into powerbot an i was wondering could i put a script that was ment 4 simba and use it on powerbot?

RuneDragon

2012-07-21 15:58:15

From: ryanmd2012
i was just on youtube and someone put a script into powerbot an i was wondering could i put a script that was ment 4 simba and use it on powerbot?


Most script you get from youtube is a keylogger, that will steal your passwords.

smurg

2012-07-21 23:30:38

From: ryanmd2012
i was just on youtube and someone put a script into powerbot an i was wondering could i put a script that was ment 4 simba and use it on powerbot?


Yes, we made a deal with the chinamen for their java injection-based bot to interpret our PascalScript files. They re-configured a new API for us.

Just load them right in.

doublex8

2012-07-22 00:19:56

From: smurg
Yes, we made a deal with the chinamen for their java injection-based bot to interpret our PascalScript files. They re-configured a new API for us.

Just load them right in.


I lost it when I read this

karlita007

2012-07-22 00:21:20

and how can i run the daganoth script into powerbot?

Runaway

2012-07-22 00:26:10

There is an easy inventory item fix… I posted it a few days ago.

nyaks

2012-07-22 00:43:32

r they fixed the smart to resize

Trent!

2012-07-22 01:27:14

From: karlita007
and how can i run the daganoth script into powerbot?


I'm going to assume you're talking about running a Powerbot script in Powerbot? If so, you start by going to their website and asking there, instead of asking for support for one bot on a completely different bot's website.

If you are talking about using a Simba script on Powerbot, then you have gone full potato and should start by moving your mouse up to that little 'X' at the top of your browser and never try to run a bot again, because you lack the intelligence levels to do so.

HeroOfSinnoh

2012-07-22 09:58:32

From: smurg
Yes, we made a deal with the chinamen for their java injection-based bot to interpret our PascalScript files. They re-configured a new API for us.

Just load them right in.


This. Made my day.

r3n3w3d

2012-07-22 10:22:36

Is simba still not working? Holy crap, random social slayer update and it is still down. I am upset to see what happens when they actually try to get rid of the bots. Thankfully I have found other forms of botting for the time being and they work almost x2 as fast as usual srl scripts as well run dungeon bots so woot woot until Simba is back running.

speedster

2012-07-22 10:44:14

From: Runaway
There is an easy inventory item fix… I posted it a few days ago.


I went through your post and could not identify it could you go at it again please ?

!_1337_!

2012-07-22 11:05:57

From: speedster
I went through your post and could not identify it could you go at it again please ?


login with all the items the script requires in your inventory.

I.E: if your crafting airs in F2P make sure you login with: rune essence, tiara, air rune in your inventory, and the models will always be loaded throughout the session.
if your mining mithril: Pickaxe, mithril ore (in inventory on login)

if you do this then you should be fine. (please tell me if you do not understand, it's really simple, whatever items get used by your script, you need to have in your inventory upon logging in, you can then bank the items and run your script)

jagex ARE working on a fix and i'll try to link the ORSF link

klamse

2012-07-22 12:35:42

From: !_1337_!

jagex ARE working on a fix and i'll try to link the ORSF link


Yes they are.
http://services.runescape.com/m=forum/sl=0/forums.ws?25,26,757,63869568,goto,73
Look at the post by Mod Cuppa today. :)

I'm curious if they'll release the fix as an invisible update, or along with a regular update.

damienjp

2012-07-22 12:43:57

From: r3n3w3d
Is simba still not working? Holy crap, random social slayer update and it is still down. I am upset to see what happens when they actually try to get rid of the bots. Thankfully I have found other forms of botting for the time being and they work almost x2 as fast as usual srl scripts as well run dungeon bots so woot woot until Simba is back running.


x1k..

krasniy

2012-07-22 15:09:49

From: r3n3w3d
Is simba still not working? Holy crap, random social slayer update and it is still down. I am upset to see what happens when they actually try to get rid of the bots. Thankfully I have found other forms of botting for the time being and they work almost x2 as fast as usual srl scripts as well run dungeon bots so woot woot until Simba is back running.


The deveopers could have had it up within a day or two if they took the easy short term route…but they took long term route that will negate much of Jagex's ability to knock us down with something similar in the future….

So we sacrifice today, so that tomorrow when your new bot home over there goes offline for whoknows how long, we will be humming along here just fine.

Nasus

2012-07-22 16:07:29

klamse, please do not post links to the official Runescape site on Simba. Clicking that link will allow Jagex to know that your IP was browsing this forum, and that is likely to lead to a red flag on your account.

damienjp

2012-07-22 18:03:41

From: krasniy
The deveopers could have had it up within a day or two if they took the easy short term route…but they took long term route that will negate much of Jagex's ability to knock us down with something similar in the future….

So we sacrifice today, so that tomorrow when your new bot home over there goes offline for whoknows how long, we will be humming along here just fine.



Are you implying that jagex will in the future make the bar bigger or maybe add sidebars ? lolz

All Jagex did was add a freakn bar to the top of the screen afaik. as the slayer part has nothing todo with the bot being broken.

krasniy

2012-07-22 18:31:14

From: damienjp
Are you implying that jagex will in the future make the bar bigger or maybe add sidebars ? lolz

All Jagex did was add a freakn bar to the top of the screen afaik. as the slayer part has nothing todo with the bot being broken.


They only have to adjust things by a few pixels to cause havoc under the old code….. so Yes I am saying exactly that. Thanks though to the developers taking the long term approach to the fix it will likely discourage Jagex from that route since it will be a simple fix now…..

Maxi111

2012-07-22 18:38:54

Hope you guys fix it when i come home from my holiday :/

klamse

2012-07-22 18:53:22

Wizzup already said the ETA is tomorrow. (Monday)
From: Wizzup?

@Everyone else, it's not a lot of work anymore but I keep getting distracted today. It'll be either tomorrow or monday (probably monday… :redface:).


From: Nasus
klamse, please do not post links to the official Runescape site on Simba. Clicking that link will allow Jagex to know that your IP was browsing this forum, and that is likely to lead to a red flag on your account.

This isn't true at all. That would be against the law for them to be able to see any site I have visited. An invasion of privacy.

GodFiend

2012-07-22 23:01:59

It's perfectly legal–it's the referer (sic) URL in your HTTP GET request. Your browser reports to the new website the URL of the link you clicked on to get to said website.

As an aside, HTML v5 will include an optional directive to prevent links from containing referrer information due to the privacy risk they can represent.

E.G.

<a href="www.google.com" rel="noreferrer">My link</a>

deathcrow

2012-07-23 01:48:04

Hope it's an easy fix that lasts a while.

Jos3ph

2012-07-23 02:24:36

Can't wait for the update, gotta hand it to everyone who makes this possible.

Gamble

2012-07-23 08:19:44

From: GodFiend
It's perfectly legal–it's the referer (sic) URL in your HTTP GET request. Your browser reports to the new website the URL of the link you clicked on to get to said website.

As an aside, HTML v5 will include an optional directive to prevent links from containing referrer information due to the privacy risk they can represent.

E.G.

<a href="www.google.com" rel="noreferrer">My link</a>


it must break terms of data collection act tho, its not legal for them to deliberatly collect data of people visiting random forums so they wouldnt be able to use any of that information they gained :S might be wrong but im 99% sure it boils down to data protection :) well for us brits anyways

Nasus

2012-07-23 08:53:49

From: Gamble
it must break terms of data collection act tho, its not legal for them to deliberatly collect data of people visiting random forums so they wouldnt be able to use any of that information they gained :S might be wrong but im 99% sure it boils down to data protection :) well for us brits anyways


No, you're wrong.

Whenever you click a link, the website you are about to visit (in this case, the Runescape site) AUTOMATICALLY receives information about the page that contained the link (in this case the Simba forums). Jagex doesn't have to do any snooping at all, and this type of receiving data is commonly used by web sites to determine where their traffic is originating. It's standard procedure for ALL online companies to keep track of where their customers are being linked from, just for advertising reasons.

Jagex is also known to keep track of traffic from the known botting sites, and compare IPs to the IPs that log in to play Runescape. This is also ethical, and rather easily automated. Anyone being linked to Runescape's official sites from a botting site has any account on the same IP red flagged for future monitoring. Whether you respect their ability to do anything about botters or not, it's still foolish to open yourself up to known risks of this nature. You wouldn't bot 24/7 next to a JMod, so why would you tell Jagex "I VISIT BOT SITES HA HA HA!"?

Jagex doesn't have to do any snooping of their own to run afoul of even the most stringent data privacy laws that a paranoid schizophrenic could design, much less any real-world laws.

krasniy

2012-07-23 09:10:44

From: Gamble
it must break terms of data collection act tho, its not legal for them to deliberatly collect data of people visiting random forums so they wouldnt be able to use any of that information they gained :S might be wrong but im 99% sure it boils down to data protection :) well for us brits anyways


Jagex is an American owned company now… and let us not forget that they collect this data, and then watch you….sorta like eliminating most of the straw in the haystack and then looking for that needle…..

Still I think the advice to beware of directly linking to their site is wise… copy the link, close villavu, and then open a new browser and paste N Go!

Deni_mulic

2012-07-23 10:24:53

American owned and American operated are two completely different concepts.

whitetiger

2012-07-23 11:07:51

yh it was developed in britain and just owned by an american company it still operates in the uk. I think :p

PS. Cant wait for update

deathcrow

2012-07-23 13:31:28

ghetto fix didn't work right for me. oh well, I am a patient person.

x[Warrior]x3500

2012-07-23 13:36:45

From: deathcrow
ghetto fix didn't work right for me. oh well, I am a patient person.


thats because that fix doesnt have all the updates. it only has some. if you want more, you need to manually add them :/ . or just wait :)

largovich

2012-07-23 15:26:08

Man I hate waiting.. ;p

whitetiger

2012-07-23 15:36:20

As you can see we are all behind you waiting for the update

deathcrow

2012-07-23 15:56:16

From: x[Warrior]x3500
thats because that fix doesnt have all the updates. it only has some. if you want more, you need to manually add them :/ . or just wait :)


I can wait. :)

vaccinate

2012-07-23 16:10:31

i'm suprised it still isn't fixed. i remember thinking when the toolbar was introduced that it would only take a couple of hours to fix it, here we are 12 days later..

i can wait though as i'm busy getting 99 dung from idung :p

quazzymodem

2012-07-23 16:16:15

just wondering what the update status is?

Side note: if this is part of their optimus plan its ingenious, just fuck around by adding a bar to the top to fuck over all colour scraping bots, and once they finally get updated all they need to do is move the bar to the bottom of the client or something silly like that and bang your out for another who knows how long.

runing low

2012-07-23 16:52:41

is today the lucky day? very excited

can't wait to get back in the game, i took this as a opportunity to get my questing done on all my accounts

let's just hope jagex doesn't throw anything else at us

Brandon

2012-07-23 16:55:24

From: quazzymodem
just wondering what the update status is?

Side note: if this is part of their optimus plan its ingenious, just fuck around by adding a bar to the top to fuck over all colour scraping bots, and once they finally get updated all they need to do is move the bar to the bottom of the client or something silly like that and bang your out for another who knows how long.


Wrong.. moving the bar will never again make SRL go down.. it'd go down for max half an hr. Why? Because the longterm fix that everyone is waiting on that is supposed to come out today will fix future bars and stupid additions too.

SetClientArea(X1, Y1, X2, Y2); That allows you to just move the client pointer around so that if the bar does move or change size, all you have to do is change the values in that and whala. All good again.

klamse

2012-07-23 17:09:47

From: Brandon
Wrong.. moving the bar will never again make SRL go down.. it'd go down for max half an hr. Why? Because the longterm fix that everyone is waiting on that is supposed to come out today will fix future bars and stupid additions too.

SetClientArea(X1, Y1, X2, Y2); That allows you to just move the client pointer around so that if the bar does move or change size, all you have to do is change the values in that and whala. All good again.


Exactly! I'm glad someone said this. :)

print

2012-07-23 17:59:44

when is this getting fixed im useing epic bot and riskin ban soo gf me =(

klamse

2012-07-23 18:10:50

From: print123
when is this getting fixed im useing epic bot and riskin ban soo gf me =(


You risk ban by using ANY bot my friend.
As to when it is getting fixed, Wizzup? said it should come out today.
Nothing has been released yet though.

speedster

2012-07-23 20:34:43

From: Brandon
Wrong.. moving the bar will never again make SRL go down.. it'd go down for max half an hr. Why? Because the longterm fix that everyone is waiting on that is supposed to come out today will fix future bars and stupid additions too.

SetClientArea(X1, Y1, X2, Y2); That allows you to just move the client pointer around so that if the bar does move or change size, all you have to do is change the values in that and whala. All good again.



Cant wait to see more input, but yeah your fix works great on mine i don't think i want to upgrade - at least not until I see some amazing new function added to SRl ;)

LemonHaze

2012-07-23 21:35:09

It's really sad that jagex still didn't dix the item bug…

RuneDragon

2012-07-23 21:44:15

From: lordvolt
It's really sad that jagex still didn't dix the item bug…


I tested PowerBot with Resizable graphics. Items still deformed. I deleted cache, tried again, it is same. Look like they are deforming items for bot client, not a safe mode bug.

Silent

2012-07-23 22:23:36

From: RuneDragon
I tested PowerBot with Resizable graphics. Items still deformed. I deleted cache, tried again, it is same. Look like they are deforming items for bot client, not a safe mode bug.


Re-sizable graphics can still be safe-mode. I have the same issue in browser. If you switch to software mode, OGL, or DirectX, all the items are fine.

zmarchbank

2012-07-24 00:40:25

I haven't been able to check the thread in a couple days and have lost track. What's the status of the fix?

Thanks to everyone that's been working on this. Wish I was more advanced in coding and could contribute. Hope to be there one day though!

Silent

2012-07-24 01:27:58

From: zmarchbank
I haven't been able to check the thread in a couple days and have lost track. What's the status of the fix?

Thanks to everyone that's been working on this. Wish I was more advanced in coding and could contribute. Hope to be there one day though!


Wizzup is almost done with his revisions to Simba (he claims tomorrow it will be done) and then after that we can patch up a few remaining things in the SRL include and be on our way.

msemtex

2012-07-24 09:51:18

There is a system update on RS that's going to happen in a minute from now. This could resolve their previous mistakes.

happycamper207

2012-07-24 10:00:37

Great now simba isn't working again

msemtex

2012-07-24 10:01:59

what! :(

Abu

2012-07-24 10:02:35

Apparently item graphics have been fixed:

http://villavu.com/forum/showthread.php?t=87031

msemtex

2012-07-24 13:58:35

I think the newest update has added random events at the demonheim bank. I tried to do some macro cooking and I was taken into a random event. :\

Mew

2012-07-24 14:13:06

From: msemtex
I think the newest update has added random events at the demonheim bank. I tried to do some macro cooking and I was taken into a random event. :\


:l
That sucks… :l

The Killer

2012-07-24 14:52:16

From: msemtex
I think the newest update has added random events at the demonheim bank. I tried to do some macro cooking and I was taken into a random event. :\


there's randoms if u go sso far down, so to get to a fire u leave the no random zones. It's more next to the banker and inside the dehonheim buldiing you dont get randoms

activecamo

2012-07-24 15:57:30

From: The Killer
there's randoms if u go sso far down, so to get to a fire u leave the no random zones. It's more next to the banker and inside the dehonheim buldiing you dont get randoms


I'm sorry, but can you rephrase that. I am actually interested in what you have to say I just can understand your attempt at English.

msemtex

2012-07-24 16:04:21

I made a fire two spaces after one of the side barriers. So that explains it. I thought the no random zone applied to the 2 fences down to the bottom. Oh well.

Austin

2012-07-24 17:53:53

From: The Killer
there's randoms if u go sso far down, so to get to a fire u leave the no random zones. It's more next to the banker and inside the dehonheim buldiing you dont get randoms

It's possible to cook on a fire without leaving the no-randoms zone.

As regards to the fix, I hope to see it soon :)

klamse

2012-07-24 17:55:20

I thought Wizzup said there wasn't much work left to be done and it was to be released yesterday?

RightClick

2012-07-24 18:30:49

From: klamse
I thought Wizzup said there wasn't much work left to be done and it was to be released yesterday?


Sometimes something is more longuer that we think.
Stop be impatient and be legit, they work for free and are not obligated to update. if you can't be patient, fix it yourself by looking to Brandon thread :cartman:

dvander222

2012-07-24 19:08:06

has anybody had luck with the ghettoo fix? step 3 idk what/how to download at the website he gives unless im suppose to add all the files there into simba and save them?

RightClick

2012-07-24 19:09:00

Just wait, fix should come soon …

Seinfeld

2012-07-24 19:13:13

Day 14, i'm out of all water now and still waiting for the official fix.

RightClick

2012-07-24 19:15:59

From: Seinfeld
Day 14, i'm out of all water now and still waiting for the official fix.


Funny lol.

Cwil

2012-07-24 22:23:04

Day 14, I'm starting to see things… i think i'm dehydrated… no i am dehydrated, getting low on food. My mind keeps playing tricks on me and I'm still waiting for the official fix.

chujowski

2012-07-24 22:32:52

From: Cwil
Day 14, I'm starting to see things… i think i'm dehydrated… getting low on food. My mind keeps playing tricks on me and I'm still waiting for the official fix.


You could have been botting 14 days ago if you followed the fix

klamse

2012-07-25 00:43:01

From: chujowski
You could have been botting 14 days ago if you followed the fix


Do you not have a sense of humor? He wasn't being serious…
Most likely making fun of the people who whine.

P1ng

2012-07-25 00:51:24

From: dvander222
has anybody had luck with the ghettoo fix? step 3 idk what/how to download at the website he gives unless im suppose to add all the files there into simba and save them?

Give the link in my signature a go..

Silent

2012-07-25 01:07:13

Just thought I'd post an update over here for those of you who haven't looked at the actually development thread (which is fine, stay here, keeps it neat). The changes to Simba are practically complete as far as I know. Wizzup rolled out those final changes today to be tested, and now we are working on getting Smart to cooperate with Simba.

There is some issue with the way SRL is currently trying to load it, what that is exactly I'm not sure. Coh3n has *mostly* fixed the login function and SetupSRL so most of the scripts and such wont need updating on that end, and will just need changes to help with the new way SMART is loaded in Simba .99.

Hope this gives some useful information on what is happening, IRC has been a busy place lately testing all this stuff and such. Like I said, pretty much everything is done, and SRL just needs a few touch ups, after that I don't think it will be long before the update is pushed through the official updaters.

klamse

2012-07-25 01:09:05

From: Silent SPY
Just thought I'd post an update over here for those of you who haven't looked at the actually development thread (which is fine, stay here, keeps it neat). The changes to Simba are practically complete as far as I know. Wizzup rolled out those final changes today to be tested, and now we are working on getting Smart to cooperate with Simba.

There is some issue with the way SRL is currently trying to load it, what that is exactly I'm not sure. Coh3n has *mostly* fixed the login function and SetupSRL so most of the scripts and such wont need updating on that end, and will just need changes to help with the new way SMART is loaded in Simba .99.

Hope this gives some useful information on what is happening, IRC has been a busy place lately testing all this stuff and such. Like I said, pretty much everything is done, and SRL just needs a few touch ups, after that I don't think it will be long before the update is pushed through the official updaters.


Awesome! :)
If I'm using Simba .98 will the official updater work with this?

Leonardo Da Vinci

2012-07-25 01:24:23

Is it just me, or is the Simba .99 download link not working?

EDIT: Anyone able to give me a working link?

Silent

2012-07-25 03:45:43

From: klamse
Awesome! :)
If I'm using Simba .98 will the official updater work with this?


It will when the official fixes are finished and pushed out. You'll have to go to tools -> update.

From: Law and Justice
Is it just me, or is the Simba .99 download link not working?

EDIT: Anyone able to give me a working link?


Latest, super-bleeding edge, probably broken stuff link
http://nala.villavu.com/downloads/simba-prev/b1e0e799ac527d1ce39e43691e5e43c4c906ac5d/
That's a working download link, but those are experimental builds.

Leonardo Da Vinci

2012-07-25 03:50:14

From: Silent SPY

Latest, super-bleeding edge, probably broken stuff link
http://nala.villavu.com/downloads/simba-prev/b1e0e799ac527d1ce39e43691e5e43c4c906ac5d/
That's a working download link, but those are experimental builds.


Thanks buddy, much appreciated!
Is SimbaInstaller.x86_64-win64.exe the one I should download?

EDIT: Woot, 100 posts.

Silent

2012-07-25 04:03:28

From: Law and Justice
Thanks buddy, much appreciated!
Is SimbaInstaller.x86_64-win64.exe the one I should download?

EDIT: Woot, 100 posts.


Nah, don't do the 64. I was excited when I first saw that too, but it doesn't work well at all according to Wizzup.

Leonardo Da Vinci

2012-07-25 04:32:18

From: Silent SPY
Nah, don't do the 64. I was excited when I first saw that too, but it doesn't work well at all according to Wizzup.


Damn, that would have been awesome.
Oh well, thanks again!
Just to double check… SimbaInstaller.i386-win32.exe is the one?

Silent

2012-07-25 04:36:27

From: Law and Justice
Damn, that would have been awesome.
Oh well, thanks again!
Just to double check… SimbaInstaller.i386-win32.exe is the one?


Correct, at least that's the one I used to install the latest version, but be warned it probably does have a few issues still.

speedster

2012-07-25 08:36:34

I still think it's kinda cool - I mean look at you guys working together like a freaking corporation to get this thing done the right way -

Up and polished ^-^

Mew

2012-07-25 11:21:03

From: speedster
I still think it's kinda cool - I mean look at you guys working together like a freaking corporation to get this thing done the right way -

Up and polished ^-^


I agree

karlita007

2012-07-25 15:21:41

Day 15. Im totally dehydrated, people is giving me wine, ¿Is simba going to rescue me?

almosthere

2012-07-25 15:56:03

Awesome im happy i wont have to re update all the scripts that are no longer updated by the creators! It would have also been difficult since ive modified a shit ton of broken scripts so that would have been a shitload of more work. (no i don't make scripts from scratch, im not talented enough)

Brandon

2012-07-25 16:05:51

So.. who wants to try another temporary fix.. Not sure if the SRL dev's will use this (I didn't send any pulls or anything) but it uses the latest Simba and ignores the navigation bar entirely. Uses only the latest smart (IF using smart) and the following:

ImageSetClientArea, MouseSetClientArea and their respective reset functions. Both browser and Smart support.

Let me know if it logs in and stuff. It should; I tested it lots. I think I tested every function unless I missed one. Logs in, logsout, opens banks, gets skills, makes compass, etc..


ChangeLog: https://github.com/Brandon-T/SRL-5/commit/492906fc99186a7150ccdc1bf3036757d6a6c4e8

It's just a patch sorta? I doubt it'd be official but hey it's pretty good. Everything is working on my end even in the browser and smart.

Requirements/Instructions:

1. Install the latest Simba: Latest Simba Respository.. http://nala.villavu.com/downloads/si...1f891d73e9d61/ Choose SimbaInstaller.i386-win32.exe
2. Use this include: https://github.com/Brandon-T/SRL-5/zipball/master
3. Use the latest Smart. Smart v7.2.

ozam

2012-07-25 17:06:04

I'm getting this error when i try it C:\Simba\Includes\SRL/SRL/core/globals.simba(522:3): Unknown identifier 'ImageResetClientArea' at line 521 .Does the imageresetclientarea need to be put in the script somewhere?

I had your previous temp fix and the script would compile and log in just fine.

Brandon

2012-07-25 17:12:19

From: ozam
I'm getting this error when i try it C:\Simba\Includes\SRL/SRL/core/globals.simba(522:3): Unknown identifier 'ImageResetClientArea' at line 521 .Does the imageresetclientarea need to be put in the script somewhere?

I had your previous temp fix and the script would compile and log in just fine.


Latest Simba Respository: http://nala.villavu.com/downloads/simba-prev/220c4987680b92b9d045c36b2801f891d73e9d61/

Choose SimbaInstaller.i386-win32.exe

ozam

2012-07-25 17:34:15

OK, everything is working now! even my old scripts that were broken by the nav bar update, thank you so much brandon, great work!!

deathcrow

2012-07-25 17:51:05

Patience is key!

Silent

2012-07-25 18:11:04

From: Brandon
So.. who wants to try another temporary fix.. Not sure if the SRL dev's will use this (I didn't send any pulls or anything) but it uses the latest Simba and ignores the navigation bar entirely. Uses only the latest smart (IF using smart) and the following:

ImageSetClientArea, MouseSetClientArea and their respective reset functions. Both browser and Smart support.

Let me know if it logs in and stuff. It should; I tested it lots. I think I tested every function unless I missed one. Logs in, logsout, opens banks, gets skills, makes compass, etc..


ChangeLog: https://github.com/Brandon-T/SRL-5/commit/492906fc99186a7150ccdc1bf3036757d6a6c4e8

It's just a patch sorta? I doubt it'd be official but hey it's pretty good. Everything is working on my end even in the browser and smart.

Requirements/Instructions:

1. Install the latest Simba: Latest Simba Respository.. http://nala.villavu.com/downloads/si...1f891d73e9d61/ Choose SimbaInstaller.i386-win32.exe
2. Use this include: https://github.com/Brandon-T/SRL-5/zipball/master
3. Use the latest Smart. Smart v7.2.


This works, perfectly. Nice work on all this Brandon, you, Wiz, and Coh3n deserve a lot of credit for all your work.

nokiaacer

2012-07-25 18:31:01

[Error] C:\Simba\Includes\srl/srl.simba(86:19): Unknown identifier 'SetupSmart' at line 85
Compiling failed.

Deni_mulic

2012-07-25 18:34:26

Keep getting this:
Error: Exception: The bitmap[0] does not exist at line 509
Using Brandon's fix. error shows in srl/srl/core/globals.simba

Silent

2012-07-25 18:48:00

From: Deni_mulic
Keep getting this:
Error: Exception: The bitmap[0] does not exist at line 509
Using Brandon's fix. error shows in srl/srl/core/globals.simba


Don't mean to sound rude, but then you are doing something wrong, or the script you are trying to use isn't updated for the new Smart.

Cwil

2012-07-25 18:49:12

Day 15, out of food now, don't know what to do. I'm almost dead if the official fix doesn't come out tomorrow there's no hope for me. PRAY FOR ME.

Silent

2012-07-25 18:56:37

From: Cwil
Day 15, out of food now, don't know what to do. I'm almost dead if the official fix doesn't come out tomorrow there's no hope for me. PRAY FOR ME.


lol, really don't worry it's pretty much done. Some unexpected issues came up with the mouse functions in the update for Simba, but Brandon caught them and Wizzup fixed them.

I'm currently running a test script that's making me cballs, working very well if I do say so myself. So don't worry, it won't be long now.

:)

JN13

2012-07-25 19:00:03

From: Cwil
Day 15, out of food now, don't know what to do. I'm almost dead if the official fix doesn't come out tomorrow there's no hope for me. PRAY FOR ME.


Its ok man, I know surprise rehab is hard. We are all rooting for you, you can do it!

[YOUTUBE]http://www.youtube.com/watch?v=SbJIi6nUs2s[/YOUTUBE]

almosthere

2012-07-25 19:00:15

From: Brandon
So.. who wants to try another temporary fix.. Not sure if the SRL dev's will use this (I didn't send any pulls or anything) but it uses the latest Simba and ignores the navigation bar entirely. Uses only the latest smart (IF using smart) and the following:

ImageSetClientArea, MouseSetClientArea and their respective reset functions. Both browser and Smart support.

Let me know if it logs in and stuff. It should; I tested it lots. I think I tested every function unless I missed one. Logs in, logsout, opens banks, gets skills, makes compass, etc..


ChangeLog: https://github.com/Brandon-T/SRL-5/commit/492906fc99186a7150ccdc1bf3036757d6a6c4e8

It's just a patch sorta? I doubt it'd be official but hey it's pretty good. Everything is working on my end even in the browser and smart.

Requirements/Instructions:

1. Install the latest Simba: Latest Simba Respository.. http://nala.villavu.com/downloads/si...1f891d73e9d61/ Choose SimbaInstaller.i386-win32.exe
2. Use this include: https://github.com/Brandon-T/SRL-5/zipball/master
3. Use the latest Smart. Smart v7.2.


fucking amazing! Nice patch it's very simple. Only 1 out of the 8 scripts I've modified won't work but i can fix it! Thanks again you deserve a ton of credit for sharing this!

Brandon

2012-07-25 19:02:54

From: almosthere
amazing! Nice patch it's very simple. Only 1 out of the 8 scripts I've modified won't work but i can fix it! Thanks again you deserve a ton of credit for sharing this!


Glad to hear that. 1 out of 8 is good! Hopefully it can be 0 out of 8 but I highly doubt that due to the requirements (Smart 7.2, Simba 0.99, etc..)

Good to know though. So far I've gotten a lot of scripts around the forum working right off the bat with just a 1 or two line change such as Paintsmart to Smartgraphics.

:)

nokiaacer

2012-07-25 19:17:12

silent spy could i try your test script for cballs?

Silent

2012-07-25 19:37:05

From: nokiaacer
silent spy could i try your test script for cballs?


Not yet, haha. I'm going to release it to the public soon, but I have to do quite a bit more to it still. Only changes I made to make it work with newest stuff are the ones listed in the SRL Updates thread that Brandon created over in the News section.

chujowski

2012-07-25 19:41:03

What's the ETA for the official public release?

Silent

2012-07-25 19:49:59

From: chujowski
What's the ETA for the official public release?


There isn't one for SRL, the ETA for the Simba updates was today, and that part is completed.

As for the small fixes to SRL, not sure when those will be rolled out.

Ilya

2012-07-25 20:55:47

From: fire_burn_00
Should the leachers just remove simba from their computers? If it's true that the fix is being delayed to teach leachers how to script, then i'm upset with the staff tremendously… I've tried making scripts with YoHoJo's youtube videos but it's not working for me. Plus… I don't have the time.


What helped me with scripting was reading the actual CODE and following along with what's happening on the screen. Then if it messes up, change some values or words, and see what happens then. It's really a huge learning process, but once you get the hang of it, it's cake (to an extent).
-Hope I helped.

chujowski

2012-07-25 21:14:35

Getting a weird error using Brendon's fix
"Exception in Script: Unable to find file 'SRL/SRL.Simba' used from 'C:\Simba\Scripts\All Potions maker ver1.5-1.simba'"

Installed the latest .99 Simba
Pasted the latest plugins into the plugin folder
Deleted the folder 'include'
Extracted the "Brandon's folder" fix into root folder and overrode old files
edit: reinstalled followed first four steps listed and deleted contents inside 'includes' folder and added contents of Brandon's folder inside

Replaced old code in the script with new and the font color is red ?

{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

Associate, extdnsion, and SRL are enabled as well.. Haven't done any updating within Simba

klamse

2012-07-25 21:45:06

From: chujowski
Getting a weird error using Brendon's fix
"Exception in Script: Unable to find file 'SRL/SRL.Simba' used from 'C:\Simba\Scripts\All Potions maker ver1.5-1.simba'"

Installed the latest .99 Simba
Pasted the latest plugins into the plugin folder
Deleted the folder 'include'
Extracted the "Brandon's folder" fix into root folder and overrode old files
edit: reinstalled followed first four steps listed and deleted contents inside 'includes' folder and added contents of Brandon's folder inside

Replaced old code in the script with new and the font color is red ?

{$DEFINE SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

Associate, extdnsion, and SRL are enabled as well.. Haven't done any updating within Simba

Lol his name is BRANDON.
But anyways, wait for the official fix. It should be out any day now.

Deni_mulic

2012-07-25 21:48:08

From: Silent SPY
Don't mean to sound rude, but then you are doing something wrong, or the script you are trying to use isn't updated for the new Smart.


Am I missing something here?

Brandon

2012-07-25 21:55:33

From: Deni_mulic

Am I missing something here?


What happened :S? I just got it working for Yohojo right out of the box so I doubt it's the include.

iiNveRsioN

2012-07-25 23:15:33

Please Wait.. Smart Is Currently Loading..

Deni_mulic

2012-07-25 23:59:14

My script was wrong, didnt REM one of the old SMART declarations. *bashes head on table*.
Thank you very much Brandon/Silent SPY.

Wizzup?

2012-07-26 05:40:13

From: Cwil
Day 15, out of food now, don't know what to do. I'm almost dead if the official fix doesn't come out tomorrow there's no hope for me. PRAY FOR ME.


Well, then you're in luck. I'm going to release Simba 0.99.1 today, and in the updater as well.

Justin

2012-07-26 06:01:49

From: Wizzup?
Well, then you're in luck. I'm going to release Simba 0.99.1 today, and in the updater as well.


Fantastic news Wizzup? !. Special thanks to the whole dev team who worked on this!

Silent

2012-07-26 06:12:09

From: Wizzup?
Well, then you're in luck. I'm going to release Simba 0.99.1 today, and in the updater as well.


Are SRL updates done as well? (officially)

Leonardo Da Vinci

2012-07-26 06:51:30

And the big proud lion saves the day!
Nice work to everyone who worked on this!

satkan

2012-07-26 08:20:29

Well i hope this'll work.
With the temp fix i don't seem to ge any scripts up and running.
(Exept for ghouler, and that's only So-So and not in smart.)

I presume a lot of scripts will need rewriting to be compatible with the new updates?
Or would a script from when say v0.98 was new still work?

Caotom

2012-07-26 09:23:53

From: Wizzup?
Well, then you're in luck. I'm going to release Simba 0.99.1 today, and in the updater as well.


Awesome news!
Hmm, are there any errors we can expect from existing 0.98 scripts (apart from having to make the obvious smart declaration and setup changes for 0.99)?

~Caotom

klamse

2012-07-26 09:34:08

From: Silent SPY
Are SRL updates done as well? (officially)


I don't know why else he would push Simba if SRL wasn't done, lol.

rsca_fun

2012-07-26 10:49:23

Hi guys, I'm a Simba noob but the programme gets stuck at the log in screen. Is everyone else facing the same problem? Can I do something about it or do I have to just wait for the update? Thanks.

Andres

2012-07-26 10:49:57

From: rsca_fun
Hi guys, I'm a Simba noob but the programme gets stuck at the log in screen. Is everyone else facing the same problem? Can I do something about it or do I have to just wait for the update? Thanks.


I'm sorry, but did you not read any of the topic that you just posted in?

gboymagik

2012-07-26 10:54:42

[Error] C:\Simba\Includes\SRL/SRL/Misc/Smart.simba(53:19): Invalid number of parameters at line 52
Compiling failed.

is anybody else getting this issue?

rsca_fun

2012-07-26 10:55:40

From: Andres
I'm sorry, but did you not read any of the topic that you just posted in?

K, I'm sorry, I'll have to just wait for the update I guess:p

710johnw

2012-07-26 11:14:11

So I had this working a couple days ago by following the fix by Brandon.

Everything worked fine if I changed

Smart_Server := 0;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;

With

{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 10;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}


But since yesterday, When I try to start up a script, even if I have this changed out properly it still starts going to every function in the scrip that has "smart" in it and says compiling error.

Am I missing something here or is stuff just not working now?

kertkert

2012-07-26 11:15:07

-snip- Sorry for this.

Deni_mulic

2012-07-26 11:50:59

From: 710johnw
So I had this working a couple days ago by following the fix by Brandon.

Everything worked fine if I changed

Smart_Server := 0;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;

With

{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 10;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}


But since yesterday, When I try to start up a script, even if I have this changed out properly it still starts going to every function in the scrip that has "smart" in it and says compiling error.

Am I missing something here or is stuff just not working now?


Use the converter posted earlier in this thread, you've probably got the same error I had.
Beware it breaks all DTMs.

Brandon

2012-07-26 11:56:17

From: Deni_mulic
Use the converter posted earlier in this thread, you've probably got the same error I had.
Beware it breaks all DTMs.


What do you mean all DTM's are broken?

710johnw

2012-07-26 12:01:02

From: Deni_mulic
Use the converter posted earlier in this thread, you've probably got the same error I had.
Beware it breaks all DTMs.


sorry for being a pest, but which converter are you referring to?

Silent

2012-07-26 12:10:27

From: Brandon
What do you mean all DTM's are broken?


From: 710johnw
sorry for being a pest, but which converter are you referring to?


Not aware of any "converter" being posted… Just different versions of SRL and a newer Simba…. All my DTMs still work great, so I don't know what issue you are encountering.

Brandon

2012-07-26 12:28:37

They're referring to this: http://villavu.com/forum/showpost.php?p=1066051&postcount=52

Xyssor

2012-07-26 13:38:22

Okay so i applied the latest "ghetto fix" or whatever.. smart/simba runs perfectly fine and all.. how do i make the scripts work?

Silent

2012-07-26 13:47:10

From: Xyssor
Okay so i applied the latest "ghetto fix" or whatever.. smart/simba runs perfectly fine and all.. how do i make the scripts work?


By latest do you mean Brandon's SRL with the new Simba and SMART?

If you do you'll need to change the SMART setup (in the script you want to run) per Brandon's instructions in the SRL updates thread over in the news section, and run it. That should be about it.

Cwil

2012-07-26 14:35:58

Day 16, Silent Spy gave me some faithful words of encouragement. He got my Adrenaline going and that might make me last a couple more days… Thanks for all that prayed for me, I have until about day 18 so if the official fix is out within those days I'll make it. THERE'S STILL HOPE!

Olly

2012-07-26 15:01:30

From: Cwil
Day 16, Silent Spy gave me some faithful words of encouragement. He got my Adrenaline going and that might make me last a couple more days… Thanks for all that prayed for me, I have until about day 18 so if the official fix is out within those days I'll make it. THERE'S STILL HOPE!


…….. SRL/SMART Will be back for sure, not sure why your counting the days, surely its not the end of the world o.O

Brandon

2012-07-26 15:07:23

Guys stop using the link on Yohojo's post -__- it's far outdated. He doesn't use that one either. He uses this one:

http://villavu.com/forum/showpost.php?p=1075523&postcount=1169

He just hasn't updated the link on the main page. I know because I teamviewered it for him to test.
Thus that ghetto fix which is actually the very first fix should NOT be used.

klamse

2012-07-26 16:04:45

From: Ollybest
…….. SRL/SMART Will be back for sure, not sure why your counting the days, surely its not the end of the world o.O


I know the new Simba is out, but does it come with an official, fixed srl?

Silent

2012-07-26 16:38:28

From: klamse
I know the new Simba is out, but does it come with an official, fixed srl?


Not yet, that's why (I think) Simba .991 hasn't been pushed out through the updaters yet either.

EDIT: Simba .991 and SRL have updated. See the Simba section for updated version.

Kyle Undefined

2012-07-26 18:03:39

When Simba .991 gets pushed, so will this https://github.com/SRL/SRL-5/pull/56

Xyssor

2012-07-26 18:28:05

http://villavu.com/forum/showthread.php?t=87258

Simba .991 got pushed and updated plugins

deathcrow

2012-07-26 21:43:37

From: Cwil
Day 16, Silent Spy gave me some faithful words of encouragement. He got my Adrenaline going and that might make me last a couple more days… Thanks for all that prayed for me, I have until about day 18 so if the official fix is out within those days I'll make it. THERE'S STILL HOPE!


You can do it!

nokiaacer

2012-07-26 22:44:40

anyone got a clue how to make smart stop hijacking my other client window, when i try to run multiple instances of smart they pair to each other resulting in one session

Compiled successfully in 749 ms.
SRL Compiled in 0 msec
Paired with SMART[5716]

Silent

2012-07-26 23:05:07

From: nokiaacer
anyone got a clue how to make smart stop hijacking my other client window, when i try to run multiple instances of smart they pair to each other resulting in one session

Compiled successfully in 749 ms.
SRL Compiled in 0 msec
Paired with SMART[5716]


run the script in a new tab, not in a new Simba :)

kevin33

2012-07-26 23:08:08

How do we fix the client pair fatal error thing? Trying to get a script to work and I get that every time. Anyone care to explain the fix step by step please?

somethingcool

2012-07-26 23:11:11

i fixed it by downloading smart v7.2 and copy to plugins

kevin33

2012-07-26 23:13:31

From: ethenhenderson
i fixed it by downloading smart v7.2 and copy to plugins


Ok I have 7.2 and copy the plugins wherebut where do I copy the plugins to?

nokiaacer

2012-07-26 23:19:29

From: Silent SPY
run the script in a new tab, not in a new Simba :)


doesnt work

kevin33

2012-07-26 23:20:46

SetupSmart(False); // change this line to True. (line 186 in srl.simba)

Courtesy of Warrior :) Give it a try.

somethingcool

2012-07-26 23:29:17

From: kevin33
Ok I have 7.2 and copy the plugins wherebut where do I copy the plugins to?


right click simba, open file location, plugins its still not working for me im just waiting till someone else post about it cause i hardly ever get help.

kevin33

2012-07-26 23:32:58

From: ethenhenderson
right click simba, open file location, plugins its still not working for me im just waiting till someone else post about it cause i hardly ever get help.


Well I think I may have figured it out. I took the 7.2 files and copied them to my plugins folder and overrid the old ones. Only thing is that now Im getting the MSVCR100.dll is missing from my computer. I never had this issue before so did I do something wrong or is this "normal". Anyone willing to share the fix or do I have to look it up myself? :P

somethingcool

2012-07-26 23:37:52

From: kevin33
Well I think I may have figured it out. I took the 7.2 files and copied them to my plugins folder and overrid the old ones. Only thing is that now Im getting the MSVCR100.dll is missing from my computer. I never had this issue before so did I do something wrong or is this "normal". Anyone willing to share the fix or do I have to look it up myself? :P


lol go c/ find java folder it in the bin folder i think just copy to systemwow folder

kevin33

2012-07-26 23:49:38

From: ethenhenderson
lol go c/ find java folder it in the bin folder i think just copy to systemwow folder


TYSM fixed and running my fav script. Rep+ .

What is it you needed help with? I will do what I can!

Silent

2012-07-26 23:51:51

From: ethenhenderson
lol go c/ find java folder it in the bin folder i think just copy to systemwow folder


If you are still having issues with Simba and Smart send me a PM. I replied to your post in the other thread, but I don't think you saw it.

Megadeth

2012-07-27 03:03:39

I updated Simba and everything else but while trying to run Flight's Livid Farm script I get the following error:


[Error] C:\Simba\Includes\SRL/SRL/misc/paintsmart.simba(41:33): Unknown identifier 'SmartGetDebugDC' at line 40

I saw someone suggest to change

{$i SRL/SRL/misc/paintsmart.simba}
to
{$i SRL/SRL/misc/smartgraphics.simba}

but then I get the following error


[Error] C:\Users\Tyler\Downloads\LividFarmer(1.2).Simba(310:40): Invalid number of parameters at line 309

Anybody know how to fix this? :o

Leonardo Da Vinci

2012-07-27 07:33:35

Okay, so I downloaded and updated Simba.
What do I do now?
(I think I know, but I want to make sure)

Austin

2012-07-27 07:36:10

From: Law and Justice
Okay, so I downloaded and updated Simba.
What do I do now?
(I think I know, but I want to make sure)


And you have SMART v7.2 also? If not, you need to get that too.

Leonardo Da Vinci

2012-07-27 07:44:50

From: AustnW
And you have SMART v7.2 also? If not, you need to get that too.


Oh yeah, thanks!
Hmmm… Where do I put the contents of the .zip?

Austin

2012-07-27 07:48:39

From: Law and Justice
Oh yeah, thanks!
Hmmm… Where do I put the contents of the .zip?

Ha idk exactly, I didn't even do it myself yet lol

Leonardo Da Vinci

2012-07-27 07:55:03

From: AustnW
Ha idk exactly, I didn't even do it myself yet lol


Lol Oh okay, thanks though!

P1ng

2012-07-27 07:57:45

You unzip them into your Plugins folder, and allow them to override your existing plugins.

Leonardo Da Vinci

2012-07-27 08:14:05

From: P1ng
You unzip them into your Plugins folder, and allow them to override your existing plugins.


Ohhh, I downloaded the wrong version, that's why I was confused.
Thanks buddy!

What is there to do now?

Wikkedninja

2012-07-27 09:19:29

Here is Simba 991 it should be working thanks to all the people who put in work on coding and testing hope this helps

http://villavu.com/forum/showthread.php?t=87258

Leonardo Da Vinci

2012-07-27 13:15:11

So.. How do I get the scripts working?
Just as before, or is there something that needs to be done?

kevin33

2012-07-27 13:22:15

Pretty much just as before. Use this instead of /Smart ( at the top of your script) :
{$Define Smart}
and at the bottom of scripts where it declares Smart stuff like Smart_Server and what not, you must change it to this:

{$IFDEF SIMBAMAJOR980}//<— THIS
Smart_Server := 0;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}//<— THIS
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
{$ENDIF}

Dont know if you need all of it but you do need most of it. Also if there is a thing at the top for paintsmart, you must change it to this:

{$I SRL/SRL/Misc/SmartGraphics.Simba}

Austin

2012-07-27 13:34:06

From: kevin33
Pretty much just as before. Use this instead of /Smart ( at the top of your script) :
{$Define Smart}
and at the bottom of scripts where it declares Smart stuff like Smart_Server and what not, you must change it to this:

{$IFDEF SIMBAMAJOR980}//<— THIS
Smart_Server := 0;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}//<— THIS
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
{$ENDIF}

Dont know if you need all of it but you do need most of it. Also if there is a thing at the top for paintsmart, you must change it to this:

{$I SRL/SRL/Misc/SmartGraphics.Simba}

Yeah this gives some more info about it too:

http://villavu.com/forum/showthread.php?t=84334

Leonardo Da Vinci

2012-07-27 13:38:45

From: kevin33
Pretty much just as before. Use this instead of /Smart ( at the top of your script) :
{$Define Smart}
and at the bottom of scripts where it declares Smart stuff like Smart_Server and what not, you must change it to this:

{$IFDEF SIMBAMAJOR980}//<— THIS
Smart_Server := 0;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}//<— THIS
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
{$ENDIF}

Dont know if you need all of it but you do need most of it. Also if there is a thing at the top for paintsmart, you must change it to this:

{$I SRL/SRL/Misc/SmartGraphics.Simba}


Sorry, I'm really dopey right now, I haven't slept too well…
Do you think you could spoon-feed me?

I'm trying to get this script working:
program new;
{$DEFINE SMART}
{$I SRL/SRL.simba}
//{$I srl/srl/misc/debug.simba}
{$IFDEF SMART}
{$I srl/srl/misc/PaintSmart.simba}
{$ENDIF}
var
a,b:TBox;
StartTime, StartExp, angleOne, angleTwo:integer;
firsttime, detected:boolean;
STime, breakTimeS :integer;

const
breakTime= 55; // break after X amount of minutes
breakLength= 12; // break for X amount of minutes
totalTimeOnPlayer= 200; // play for a total amount of minutes
detectionType= 1; //if you have issues with 0 (detects when stopped chopping), use 1.

procedure declareplayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
Players[0].Strings[0] := 'VE'; // Location: VN,VE,CW
end;

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// DONT GO PAST HERE //
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////

function AutoColorIvy: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.06, 0.15);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 4421725, MSX1, MSY1, MSX2, MSY2, 5);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 9.11) and (X <= 15.81) and (Y >= 11.95) and (Y <= 20.87) and (Z >= 5.94) and (Z <= 10.05) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

function AutoColorNest: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.47, 1.24);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 3885645, MSX1+1, MSY1+1, MSX2-1, MSY2-1, 8);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 4.22) and (X <= 8.40) and (Y >= 4.48) and (Y <= 8.83) and (Z >= 2.94) and (Z <= 8.01) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

procedure antiban();
begin
case random(200) of
1: begin MakeCompass(RandomRange(angleOne-20,angleTwo+20)); makeCompass(RandomRange(angleOne,angleTwo)); end;
2: PickUpMouse;
3: begin RandomAngle(True); setangle(SRL_Angle_Low); end;
4: begin HoverSkill(skill_Woodcutting,false); mmouse(50,50, 300,200); end;
5..10: mmouse(50,50, 300,200);
end;
end;

procedure findIvy();
var
i, highATPA : integer;
x, y : integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorIvy, MSX1, MSY1, MSX2, MSY2, 2);
ATPA := splitTPA(TPA,6);
//debugATPAbounds(ATPA);
//SMART_DebugATPA(false, ATPA);

highATPA := high(ATPA);
for i := 0 to highATPA do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x-2, y-2, 4, 4);
getmousepos(x,y);
wait(300 + random(400));
if isUpText('Ivy') then
begin
mouse(x,y,0,0,true);
case random(4) of
1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
end;
break;
end;
end;
end;

function findNest():boolean;
var
i, highATPA : integer;
x, y : integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
result:=false;
FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorNest,54, 193, 506, 261, 2);
ATPA := splitTPA(TPA,10);
//debugATPAbounds(ATPA);
//SMART_DebugATPA(false, ATPA);

highATPA := high(ATPA);
for i := 0 to highATPA do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x-2, y-2, 4, 4);
getmousepos(x,y);
wait(300 + random(400));
if isUpText('nest') then
begin
mouse(x,y,0,0,true);
case random(4) of
1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
end;
result:=true;
break;
end;
end;
end;

function detectBirdNestMessage():boolean;
var
x,y:integer;
begin
result:=false;
if(findcolor(x,y,255, 9, 428, 84, 457))then
begin
writeln('Detected Bird Nest');
if(findNest)then
result:=true;
end;
end;

procedure PrintProggy();
var
background: TBox;
x,y,i: Integer;
Exp,ExpPerHour:integer;
boxpoints: Array of TPoint;
begin
{$IFDEF SMART}
Exp := GetXPBarTotal-StartExp;
ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000+1);
if(firsttime)then
begin
SMART_clearcanvas();
background.X1:= MMx1-30;
background.Y1:= MMy1-10;
background.X2:= MMx2+62;
background.Y2:= MMy2+7;
setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
i:=0;
for x:= background.X1 to background.X2-1 do
begin
for y:= background.Y1 to background.Y2-1 do
begin
boxpoints[i]:= point(x,y);
inc(i);
end;
end;
SMART_DrawDotsEx(false, boxpoints, 3160642);
end else
begin
background.X1:= 590;
background.Y1:= 78;
background.X2:= 723;
background.Y2:= 122;
setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
i:=0;
for x:= background.X1 to background.X2-1 do
begin
for y:= background.Y1 to background.Y2-1 do
begin
boxpoints[i]:= point(x,y);
inc(i);
end;
end;
SMART_DrawDotsEx(false, boxpoints, 3160642);
end;

SMART_DrawText(MMX1-20, MMY1, 'UpChars', 'Warrior''s IvyCutter', ClLime);
SMART_DrawText(MMX1-20, MMY1+15, 'UpChars', 'By, x[Warrior]x3500', ClLime);
SMART_DrawText(MMX1-20, MMY1+30, 'UpChars', '------------------------', ClLime);
SMART_DrawText(MMX1-20, MMY1+55, 'UpChars', 'Player: ' + Players[CurrentPlayer].Name, ClLime);
SMART_DrawText(MMX1-20, MMY1+70, 'UpChars', 'Total Exp: ' + inttostr(Exp), ClLime);
SMART_DrawText(MMX1-20, MMY1+85, 'UpChars', 'Exp per Hour: ' + tostr(ExpPerHour), ClLime);
SMART_DrawText(MMX1-20, MMY1+100, 'UpChars', 'Total Time: ' + inttostr(GetTimeRunning/1000/60) + ' minutes', ClLime);
SMART_DrawText(MMX1-20, MMY1+110, 'UpChars', '------------------------', ClLime);
{$ENDIF}
end;

procedure proggy();
var
Exp, ExpPerHour: integer;
begin
cleardebug();
Exp := GetXPBarTotal-StartExp;
ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000);
writeLn('---------- Warrior''s -----------');
writeLn('---------- IvyCutter -----------');
writeLn('Total Time: ' + TimeRunning);
writeLn('Exp Earned: ' + IntToStr(Exp));
writeLn('Exp Per Hour: ' + IntToStr(ExpPerHour));
writeLn('--------------------------------');
end;

procedure initBreakTime();
begin
breakTimeS:= breakTime*60-((breakTime*60)*(1/10))+random((breakTime*60)*(2/10));
STime:=GetSystemTime();
end;

function detectBreakTime():boolean;
begin
result:=false;
if((Getsystemtime-STime)/1000>breakTimeS)then
result:=true;
end;

function detectTotalRunTime():boolean;
begin
result:=false;
if((Getsystemtime-StartTime)/1000/60>TotalTimeOnPlayer)then
result:=true;
end;

procedure doBreak();
var
breakingFor:integer;
begin
breakingFor:= breaklength*60-((breaklength*60)*(1/10))+random((breaklength*60)*(2/10));
writeln('Breaking for: '+inttostr(breakingFor/60)+' minutes.');
writeln('Start Break Time: '+MStoTime(Getsystemtime,Time_Bare));
logout();
wait(breakingFor*1000);
loginplayer();
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
end;

procedure setupPlayer();
begin
case Players[CurrentPlayer].Strings[0] of
'VN','FN': begin angleOne:=180; angleTwo:=180; end;
'VE','T': begin angleOne:=90; angleTwo:=90; end;
'FS','CW': begin angleOne:=0; angleTwo:=0; end;
'A': begin angleOne:=270; angleTwo:=270; end;
end;
if(not(LoggedIn))then
LoginPlayer;
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
if(not(IsXPBarOpen))then
ToggleXPBar(true);
if(StartExp=0)then
StartExp := GetXPBarTotal;

a.X1:= 243;
a.X2:= 280;
a.Y1:= 86;
a.Y2:= 174;

b.X1:= 242;
b.X2:= 268;
b.Y1:= 103;
b.Y2:= 126;

end;


begin
Smart_Server := 10;
setupsrl;
DeclarePlayers;
StartTime := GetSystemTime;
StartExp := GetXPBarTotal;
firsttime := true;
repeat
setupPlayer();
repeat
initBreakTime();
repeat
printProggy();
firsttime:=false;
findIvy();
wait(400+random(300));
detected:=false;
repeat
antiban();
proggy();
if(findnormalrandoms)then
begin
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
end;
case detectionType of
0: detected:= (averagepixelshift(b,200,2000)<900);
1: detected:= (averagepixelshift(a,200,2000)<1000);
end;
until(detected) or (detectBirdNestMessage);
wait(random(400));
findnormalrandoms();
until(detectBreakTime);
doBreak();
until(detectTotalRunTime);
nextplayer(false);
until(allplayersinactive);

end.

kevin33

2012-07-27 13:46:48

@LAW this compiles for you:

program new;
{$DEFINE SMART}
{$I SRL/SRL.simba}
//{$I srl/srl/misc/debug.simba}
{$IFDEF SMART}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

{$ENDIF}
var
a,b:TBox;
StartTime, StartExp, angleOne, angleTwo:integer;
firsttime, detected:boolean;
STime, breakTimeS :integer;

const
breakTime= 55; // break after X amount of minutes
breakLength= 12; // break for X amount of minutes
totalTimeOnPlayer= 200; // play for a total amount of minutes
detectionType= 1; //if you have issues with 0 (detects when stopped chopping), use 1.

procedure declareplayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
Players[0].Strings[0] := 'VE'; // Location: VN,VE,CW
end;

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// DONT GO PAST HERE //
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////

function AutoColorIvy: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.06, 0.15);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 4421725, MSX1, MSY1, MSX2, MSY2, 5);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 9.11) and (X <= 15.81) and (Y >= 11.95) and (Y <= 20.87) and (Z >= 5.94) and (Z <= 10.05) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

function AutoColorNest: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.47, 1.24);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 3885645, MSX1+1, MSY1+1, MSX2-1, MSY2-1, 8);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 4.22) and (X <= 8.40) and (Y >= 4.48) and (Y <= 8.83) and (Z >= 2.94) and (Z <= 8.01) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

procedure antiban();
begin
case random(200) of
1: begin MakeCompass(RandomRange(angleOne-20,angleTwo+20)); makeCompass(RandomRange(angleOne,angleTwo)); end;
2: PickUpMouse;
3: begin RandomAngle(True); setangle(SRL_Angle_Low); end;
4: begin HoverSkill(skill_Woodcutting,false); mmouse(50,50, 300,200); end;
5..10: mmouse(50,50, 300,200);
end;
end;

procedure findIvy();
var
i, highATPA : integer;
x, y : integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorIvy, MSX1, MSY1, MSX2, MSY2, 2);
ATPA := splitTPA(TPA,6);
//debugATPAbounds(ATPA);
//SMART_DebugATPA(false, ATPA);

highATPA := high(ATPA);
for i := 0 to highATPA do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x-2, y-2, 4, 4);
getmousepos(x,y);
wait(300 + random(400));
if isUpText('Ivy') then
begin
mouse(x,y,0,0,true);
case random(4) of
1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
end;
break;
end;
end;
end;

function findNest():boolean;
var
i, highATPA : integer;
x, y : integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
result:=false;
FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorNest,54, 193, 506, 261, 2);
ATPA := splitTPA(TPA,10);
//debugATPAbounds(ATPA);
//SMART_DebugATPA(false, ATPA);

highATPA := high(ATPA);
for i := 0 to highATPA do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x-2, y-2, 4, 4);
getmousepos(x,y);
wait(300 + random(400));
if isUpText('nest') then
begin
mouse(x,y,0,0,true);
case random(4) of
1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
end;
result:=true;
break;
end;
end;
end;

function detectBirdNestMessage():boolean;
var
x,y:integer;
begin
result:=false;
if(findcolor(x,y,255, 9, 428, 84, 457))then
begin
writeln('Detected Bird Nest');
if(findNest)then
result:=true;
end;
end;

procedure PrintProggy();
var
background: TBox;
x,y,i: Integer;
Exp,ExpPerHour:integer;
boxpoints: Array of TPoint;
begin
{$IFDEF SMART}
Exp := GetXPBarTotal-StartExp;
ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000+1);
if(firsttime)then
begin
SMART_clearcanvas();
background.X1:= MMx1-30;
background.Y1:= MMy1-10;
background.X2:= MMx2+62;
background.Y2:= MMy2+7;
setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
i:=0;
for x:= background.X1 to background.X2-1 do
begin
for y:= background.Y1 to background.Y2-1 do
begin
boxpoints[i]:= point(x,y);
inc(i);
end;
end;
SMART_DrawDotsEx(false, boxpoints, 3160642);
end else
begin
background.X1:= 590;
background.Y1:= 78;
background.X2:= 723;
background.Y2:= 122;
setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
i:=0;
for x:= background.X1 to background.X2-1 do
begin
for y:= background.Y1 to background.Y2-1 do
begin
boxpoints[i]:= point(x,y);
inc(i);
end;
end;
SMART_DrawDotsEx(false, boxpoints, 3160642);
end;

SMART_DrawText(MMX1-20, MMY1, 'UpChars', 'Warrior''s IvyCutter', ClLime);
SMART_DrawText(MMX1-20, MMY1+15, 'UpChars', 'By, x[Warrior]x3500', ClLime);
SMART_DrawText(MMX1-20, MMY1+30, 'UpChars', '------------------------', ClLime);
SMART_DrawText(MMX1-20, MMY1+55, 'UpChars', 'Player: ' + Players[CurrentPlayer].Name, ClLime);
SMART_DrawText(MMX1-20, MMY1+70, 'UpChars', 'Total Exp: ' + inttostr(Exp), ClLime);
SMART_DrawText(MMX1-20, MMY1+85, 'UpChars', 'Exp per Hour: ' + tostr(ExpPerHour), ClLime);
SMART_DrawText(MMX1-20, MMY1+100, 'UpChars', 'Total Time: ' + inttostr(GetTimeRunning/1000/60) + ' minutes', ClLime);
SMART_DrawText(MMX1-20, MMY1+110, 'UpChars', '------------------------', ClLime);
{$ENDIF}
end;

procedure proggy();
var
Exp, ExpPerHour: integer;
begin
cleardebug();
Exp := GetXPBarTotal-StartExp;
ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000);
writeLn('---------- Warrior''s -----------');
writeLn('---------- IvyCutter -----------');
writeLn('Total Time: ' + TimeRunning);
writeLn('Exp Earned: ' + IntToStr(Exp));
writeLn('Exp Per Hour: ' + IntToStr(ExpPerHour));
writeLn('--------------------------------');
end;

procedure initBreakTime();
begin
breakTimeS:= breakTime*60-((breakTime*60)*(1/10))+random((breakTime*60)*(2/10));
STime:=GetSystemTime();
end;

function detectBreakTime():boolean;
begin
result:=false;
if((Getsystemtime-STime)/1000>breakTimeS)then
result:=true;
end;

function detectTotalRunTime():boolean;
begin
result:=false;
if((Getsystemtime-StartTime)/1000/60>TotalTimeOnPlayer)then
result:=true;
end;

procedure doBreak();
var
breakingFor:integer;
begin
breakingFor:= breaklength*60-((breaklength*60)*(1/10))+random((breaklength*60)*(2/10));
writeln('Breaking for: '+inttostr(breakingFor/60)+' minutes.');
writeln('Start Break Time: '+MStoTime(Getsystemtime,Time_Bare));
logout();
wait(breakingFor*1000);
loginplayer();
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
end;

procedure setupPlayer();
begin
case Players[CurrentPlayer].Strings[0] of
'VN','FN': begin angleOne:=180; angleTwo:=180; end;
'VE','T': begin angleOne:=90; angleTwo:=90; end;
'FS','CW': begin angleOne:=0; angleTwo:=0; end;
'A': begin angleOne:=270; angleTwo:=270; end;
end;
if(not(LoggedIn))then
LoginPlayer;
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
if(not(IsXPBarOpen))then
ToggleXPBar(true);
if(StartExp=0)then
StartExp := GetXPBarTotal;

a.X1:= 243;
a.X2:= 280;
a.Y1:= 86;
a.Y2:= 174;

b.X1:= 242;
b.X2:= 268;
b.Y1:= 103;
b.Y2:= 126;

end;


begin
{$IFDEF SIMBAMAJOR980}//<--- THIS
Smart_Server := 0;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}//<--- THIS
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
{$ENDIF}

setupsrl;
DeclarePlayers;
StartTime := GetSystemTime;
StartExp := GetXPBarTotal;
firsttime := true;
repeat
setupPlayer();
repeat
initBreakTime();
repeat
printProggy();
firsttime:=false;
findIvy();
wait(400+random(300));
detected:=false;
repeat
antiban();
proggy();
if(findnormalrandoms)then
begin
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
end;
case detectionType of
0: detected:= (averagepixelshift(b,200,2000)<900);
1: detected:= (averagepixelshift(a,200,2000)<1000);
end;
until(detected) or (detectBirdNestMessage);
wait(random(400));
findnormalrandoms();
until(detectBreakTime);
doBreak();
until(detectTotalRunTime);
nextplayer(false);
until(allplayersinactive);

end.



bomzene

2012-07-27 13:50:28

Tried my best to update the script below, but I have not had much luck…

Is anyone able to update this to work with the latest Simba (991) and Smart 7.2 please?

The original code is below.

program ChaosMossKiller;
{$i srl/srl/misc/smart.simba}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$i srl/srl/misc/debug.simba}
{$i srl/srl/misc/paintsmart.simba}
const
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//========================ChaosMossKiller by hunt3rx3=======================v6.0
//READ THESE CAREFULLY!===================================================19 May
//*YOU MUST SET UP XP COUNTER FOR TRAINED LEVEL, OTHERWISE SCRIPT WONT WORK!====
//*FOOD:========================================================================
// -ONLY EATS LOBSTERS AND PEACHES=============================================
// -DONT USE B2P WITH BONECRUSHER! COMMON SENSE================================
//*CHARM LOOTING:===============================================================
// -WILL PICK UP CHARMS WHAT YOU CAN SEE WITH YOUR EYES!=======================
// -WONT RIGHT CLICK ALL THE LOOT PILES!=======================================
// -HAVE 1+ OF EACH AT START!==================================================
//*SPECIAL ATTACKS:=============================================================
// -ONLY PRIMARY WORN WEAPONS, WONT SWITCH WEAPONS!============================
// -KORASI NOT SUPPORTED! WOULD MESS UP THE SCRIPT!============================
//==============================================================================
SRLStats_User = ''; // Your SRL Stats ID (If you dont have one then just leave it as it is)
SRLStats_Password = ''; // Your SRL Stats Password (If you dont have one then just leave it as it is)

Username = '';
Password = '';

TrainedSkill = 'Strength'; // Attack, Strength, Defence, Range
XPCounter = 2; // 1,2,3
EatAt = 700; // 100-999

BonesToPeaches = True;
PickUpCharms = True;

UseSpecAttacks = False; // Only worn weapons. Not supported: Korasi.
SpecUsage = 55; // Spec usage of worn weapon. Supported: 25, 50, 55, 60, 100

PaintStatus = True; // set Private Chat off for this
PaintDebug = True;

TakeScreenShots = True; // (~100 kb jpeg, wont eat memory)
ScreenShotsPath = 'C:\Simba\Screenshots\ChaosMossKiller\';


DebugWindow = False;
DebugLines = False;
//==============================================================================
//===========UPDATES: [url]http://villavu.com/forum/showthread.php?t=74029===========[/url]
//==============================================================================
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Version = 'v6.0';


var
X, Y: Integer;
StartTime, StartXp, StartXPtillNext, TrainedLevel, HpLevel : Integer;
WorldHops, B2PUsed, FoodUsed, GoldCharms, GreenCharms, BlueCharms, CrimsonCharms : Integer;
SpecWait, SpecTime, SpecNumber : Integer;
LastXP : Extended;
LevelString : String;
doreport, b2p : Boolean;



procedure DeclarePlayers;
begin
NumberOfPlayers(1);
CurrentPlayer := 0;
with Players[0] do
begin
Name := UserName;
Pass := Password;
Active := True;
end;
end;



procedure MakeScreenShot(const FilePath : String); //example: 'C:\Simba\Screenshots\ChaosMossKiller\levelups'
var
fileName : String;
Year, Month, Day : Word;
i : Integer;
begin
if TakeScreenShots then
begin
if not DirectoryExists(ScreenShotsPath) then
CreateDirectory(ScreenShotsPath);
if not DirectoryExists(FilePath) then
CreateDirectory(FilePath);
DecodeDate(Date,Year,Month,Day);
i := 0;
repeat
i := i+1;
FileName := ToStr(Year) + '-' + ToStr(Month) + '-' + ToStr(Day) + ' (' + IntToStr(i) + ').jpg';
until not FileExists(FilePath + FileName)
SaveScreenShot(FilePath + FileName); //example: 2012-3-21 (1).jpg
end;
end;



procedure OpenDebugWindow(TPA: TPointArray; ATPA: array Of TPointArray; PaintBox: Boolean; Box: TBox); //box is for the dying Moss giant
var
BMP, x,y, i, Color : Integer;
TPABox: TBox;
begin
BMP := BitmapFromClient(0,0,MSX2,MSY2); //making a bitmap, adding the mainscreen image to it
DrawTPABitmap(BMP,TPA,clRed); //adding TPA to the bitmap

for i := 0 to high(ATPA) do
begin
if i = 0 then
Color := clYellow
else
Color := clBlack;

TPABox := getTPABounds(ATPA[i]); //getting the box of the TPA
for x := TPABox.x1 to TPABox.x2 do
begin
FastSetPixel(BMP, x, TPABox.y1, Color) //drawing lines
FastSetPixel(BMP, x, TPABox.y2, Color) //drawing lines
end;
for y := TPABox.y1 to TPABox.y2 do
begin
FastSetPixel(BMP, TPABox.x1, y, Color) //drawing lines
FastSetPixel(BMP, TPABox.x2, y, Color) //drawing lines
end;
end;

if PaintBox then //this is for the dying Moss giant
begin
for x := Box.x1 to Box.x2 do
begin
FastSetPixel(BMP, x, Box.y1, ClRed) //drawing lines
FastSetPixel(BMP, x, Box.y2, ClRed) //drawing lines
end;
for y := Box.y1 to Box.y2 do
begin
FastSetPixel(BMP, Box.x1, y, ClRed) //drawing lines
FastSetPixel(BMP, Box.x2, y, ClRed) //drawing lines
end;
end;
DebugBitmap(BMP);
FreeBitmap(BMP);
end;



function CurrentTime: string; //function for time, example [17:53:59]
var
Hour, Mins, Sec, MSec: Word;
begin
DecodeTime(Now, Hour, Mins, Sec, MSec);
Result := ('['+Padz(IntToStr(Hour), 2) + ':' + Padz(IntToStr(Mins), 2) + ':' + Padz(IntToStr(Sec), 2)+'] ');
end;



procedure EndScript(Reason : String); //function for ending, message box will pop up
begin
MakeScreenShot(ScreenShotsPath + 'stops\');
Disguise('Stopped');
Writeln(CurrentTime + Reason);
MessageBox(CurrentTime + Reason,'ChaosMossKiller',0); //message box as warning
TerminateScript;
end;



procedure StatusWithPaint(What : String); //Painting status on SMART
begin
Status(What);
if PaintStatus then
begin
SMART_ClearCanvasArea(IntToBox(MSX1,320,MSX2,343));
SMART_DrawTextEx(False,8,322,SmallChars,What,ClWhite); //drawing the text
end;
end;



procedure Report;
var
XP, XPHour, PrayXP, XPtillNext, TimeRun : Extended; //i have no clue why, but integer with Round() wont work
done : Boolean;
fails : Integer;
begin
if not DoReport then Exit;
fails := 0;
done := True;
repeat //reading XPCounter for xp gained
if (fails = 5) then
begin
Writeln(CurrentTime+'Failed to read XPBar. Turning off Reports.');
DoReport := False;
Exit;
end;
XP := GetXPBar(XPCounter)-StartXP;
if (XP + StartXP = -1) then //if fails to read xpbar it gives -1
begin
done := False;
fails := fails+1;
end;
until done

TimeRun := TimeFromMark(StartTime);
PrayXP := Round(XP / 240 * 15);
XPHour := Round(XP * (3600000 / TimeRun));
XPtillNext := StartXPtillNext - XP + LastXP; //LastXP = 0 untill we get a levelup

if (XPtillNext < 0) then //levelup check
begin
fails := 0;
done := True;
repeat //getting new level and xp till next
if (fails = 5) then
begin
Writeln(CurrentTime + 'Failed to get level/XPs. Turning off Reporting.');
DoReport := False;
Exit;
end;
TrainedLevel := GetSkillLevel(TrainedSkill);
if (TrainedLevel = -1) then //if fails to get level it gives -1
begin
done := False;
fails := fails+1;
end;
StartXPtillNext := XPTillNextLevel(TrainedSkill);
if (StartXPtillNext = -1) then //if fails to read xp it gives -1
begin
done := False;
fails := fails+1;
end;
until done

XPtillNext := StartXPtillNext;
LastXP := Round(XP); //we store the 'xp gained till now' (round is needed cause extended and integer)
MakeScreenShot(ScreenShotsPath + 'levelups\'); //this will make a screenshot of our levelup:)
Wait(RandomRange(3000,5000));
end;

ClearDebug;
Disguise('ChaosMossKiller [' + FloatToStr(XPHour) + ']');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' ChaosMossKiller ' + Version);
WriteLn(' * Time Running: ' + MsToTime(Round(TimeRun),Time_Formal));
WriteLn(' * ' + LevelString + ' XP Gained: ' + FloatToStr(XP) + ' (' + FloatToStr(XPHour) + ')');
Writeln(' * ' + LevelString + ' Level: ' + IntToStr(TrainedLevel) + ', XP till next: ' + FloatToStr(XPtillNext));
Writeln(' * B2P: ' + IntToStr(B2PUsed) + ' Food: ' + IntToStr(FoodUsed))
if PickUpCharms then
Writeln(' * Charms: ' + IntToStr(GoldCharms) + '/' + IntToStr(GreenCharms) + '/' + IntToStr(BlueCharms) + '/' + IntToStr(CrimsonCharms))
else
Writeln(' * Not picking up charms.');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;



procedure Antiban; //basic antibans
begin
case Random(2400) of
1..2:
begin
StatusWithPaint('Checking trained level.');
TrainedLevel := GetSkillLevel(TrainedSkill);
HoverSkill(TrainedSkill,false);
Wait(RandomRange(1000,3000));
GameTab(tab_Inv);
StatusWithPaint('Back to fighting.');
end;
3..4:
begin
StatusWithPaint('Checking hp level.');
TrainedLevel := GetSkillLevel(TrainedSkill);
HoverSkill(SKILL_HITPOINTS,false);
Wait(RandomRange(1000,3000));
GameTab(tab_Inv);
StatusWithPaint('Back to fighting.');
end;
5..6:
begin
StatusWithPaint('Checking random level.');
TrainedLevel := GetSkillLevel(TrainedSkill);
HoverSkill('random',false);
Wait(RandomRange(1000,3000));
GameTab(tab_Inv);
StatusWithPaint('Back to fighting.');
end;
7..8: PickUpMouse;
9..14: CompassMovement(-180,180,false);
180..460: SleepAndMoveMouse(RandomRange(300,1200));
end;
end;



function BreakB2P : Boolean;
var
TabDTM : Integer;
fails : Integer;
done : Boolean;
begin
TabDTM := DTMFromString('78DA633CC4C4C070899101194CEEED65F802148289326E03AA398BAA868181894184014DCD0D026AF602D53C20A0E614116A2E01D55C2742CD79FC6A00BDB80E80');
if not (GetCurrentTab = tab_Inv) then
GameTab(tab_Inv);
Wait(RandomRange(200,400));
fails := 0;
done := False;
repeat
if FindDTM(TabDTM,X,Y,MIX1,MIY1,MIX2,MIY2) then
begin
Mouse(X,Y,5,5,mouse_left); //clickig on B2P tab
Inc(B2PUsed);
Wait(RandomRange(6000,8000)); //it takes long to break it
Result := True;
done := True;
end else
begin
if not (GetCurrentTab = tab_Inv) then //sometimes it fails to switch tabs for the first time
GameTab(tab_Inv);
fails := fails+1;
end;
if (fails = 5) then //trying to find DTM 5 times max
begin
Result := False;
done := True;
end;
until done
FreeDTM(TabDTM);
end;



function EatFood(var foodDTMString : String): boolean;
var
FoodDTM, EatTime, CurrentHP, fails : Integer;
done : Boolean;
colorstring : String; //this is for a return value, not using it
begin
FoodDTM := DTMFromString(foodDTMString);
if not (GetCurrentTab = tab_Inv) then
GameTab(tab_Inv);
Wait(RandomRange(200,400));

fails := 0;
done := False;
repeat
if FindDTM(FoodDTM,X,Y,MIX1,MIY1,MIX2,MIY2) then
begin
CurrentHP := GetMMLevels('hp', colorstring);
MarkTime(eatTime);
repeat
MultiMouse(X,Y,80,2,true);
Wait(RandomRange(400,800));
if ( GetMMLevels('hp', colorstring) > (CurrentHP + 30) ) then //checking if HP is increased
begin
Inc(FoodUsed);
done := True;
Result := True;
end;
if (TimeFromMark(eatTime) > 10000) then
begin
Result := False;
done := True;
end;
until done
end
else
begin
if not (GetCurrentTab = tab_Inv) then //sometimes it fails to switch tabs for the first time
GameTab(tab_Inv);
fails := fails+1;
Wait(500);
end;

if (fails = 5) then //trying to find DTM max 5 times
begin
Result := False;
done := True;
end;
until done
FreeDTM(FoodDTM);
end;



function ChooseOptionCharms(What : String) : Boolean; //modified SRL function, this will loot charms if possible
var
B: TBox;
i, H, x: Integer;
T: TPoint;
Options: Array of TOptions;
begin
Result := False;
Options := GetChooseOptions('action');
if (Length(Options) < 1) then
Exit;
H := High(Options);

for i := 0 to H do
begin
if PickUpCharms then //if charms looting is enabled
begin
if Pos('ake Gold', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Gold charm!');
Inc(GoldCharms);
Report;
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;

if Pos('ake Green', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Green charm!');
Inc(GreenCharms);
Report;
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;

if Pos('ake Blue', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Blue charm!');
Inc(BlueCharms);
Report;
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;

if Pos('ake Crims', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Crimson charm!');
Report;
Inc(CrimsonCharms);
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;
end;

if Pos(What, Options[i].Str) > 0 Then //this will check for 'attack' or 'take bones' (nowhere else using ChooseOptionCharms)
begin
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;
end;

B := Options[0].BigBox; //to mmouse away
x := Max(B.X1 - 52, 0);
if x = 0 then
x := B.X2+10;
MMouse(x, Max(B.Y1 - 50, 0), 40, B.Y2-B.Y1);
Wait(200 + Random(100));
end;



function FindMoss(ClickOnIt: Boolean) : Boolean; //returns true only if clicked on a Moss giant
var
RedX, RedY, ExcX, ExcY, i, MinPoints, DetectTime, UptextTime, RedHpBarDTMTime, RedHpBarDTM : Integer;
TPA, MossTPA : TPointArray;
ATPA : Array of TPointArray;
MossColors, Tolerances : Array of Integer;
ExcludeNearRedHpBar : Boolean;
begin
Result := False;
MarkTime(DetectTime);
//6257521 (8) portal színe, tökéletes
//2173227 (5) nincs már sötét fal (eddig 7 jó volt)
//2372406 (8) nincs már (12 volt) nagyon kicsi barna fából
//2309694 (7) nincs nagyon nagyon kicsi barna fából
//3303025 (14) sárgásbarna, tökéletes
//4482405 (13)
MossColors := [6257521, 2173227, 2372406, 2309694, 3303025, 4482405];
Tolerances := [8, 5, 8, 7, 15, 13];
MinPoints := 200;

for i:=0 to High(MossColors) do
begin
FindColorsTolerance(MossTPA,MossColors[i],MSX1,MSY1,MSX2,MSY2,Tolerances[i]);
AppendTPA(TPA,MossTPA);
end;

ExcludeNearRedHpBar := False;
RedHpBarDTM := DTMFromString('mWAAAAHicY2FgYNgCxOeh+AIQRwFxOBDHQtk7GTgYrNmZ4FgEKIaMGdEwCAAAoEoGcA==');
if WaitFindDTMex(RedHpBarDTM,X,Y,MSX1,MSY1,MSX2,MSY2,10,100) then //if found redbar then we will exclude points around it
begin
ExcludeNearRedHpBar := True;
RedX := X;
RedY := Y+50;
ExcX := 35;
ExcY := 60;
end;
FreeDTM(RedHpBarDTM);

if (High(TPA)> 0) then
begin

if ExcludeNearRedHpBar then //excluding near RedHpBar
begin
SortTPAFrom(TPA,Point(redX,redY));
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - RedX) < ExcX) and (Abs(TPA[i].y - RedY) < ExcY) then
Break;
SetArrayLength(TPA,i);
end;

SortTPAFrom(TPA,Point(MSCX,MSCY)); //excluding points near middle
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - MSCX) < 25) and (Abs(TPA[i].y - MSCY) < 25) then
Break;
SetArrayLength(TPA,i);

ATPA := SplitTPA(TPA,10); //splitting TPAs

SortATPASize(ATPA,True); //excluding TPAs with less than MinPoints points
for i:=0 to High(ATPA) do
begin
if High(ATPA[i]) < MinPoints then
Break;
end;
if i = 0 then Inc(i);
SetArrayLength(ATPA,i);

SortATPAFromFirstPoint(ATPA,Point(MSCX,MSCY)); //making the closest TPA the first in the array


if DebugWindow then //DebugWindow
OpenDebugWindow(TPA,ATPA,true,IntToBox(RedX-ExcX,RedY-ExcY,RedX+ExcX,RedY+ExcY));

if High(ATPA[0]) < MinPoints then //to avoid errors
Exit;


if ClickOnIt then
begin
if MiddleTPAEx(ATPA[0],X,Y) then //getting the middle point of the TPA, moving mouse there then looking for uptext
begin
MMouse(X,Y,0,0);
MarkTime(UptextTime);
if WaitUpText('ttack',200) then
begin
if DebugLines then //DebugLines
Writeln('Found Moss in ' + IntToStr(TimeFromMark(DetectTime)) + ' ms. Uptext was ' + IntToStr(TimeFromMark(UptextTime)) + ' ms.');
case Random(6) of //random left or rigth click (5:1)
0..4:
begin
ClickMouse2(mouse_left);
if DidRedClick then
Result := True; //returns true = clicked on moss
Exit;
end;
5:
begin
ClickMouse2(mouse_right);
if ChooseOption('ttack') then
Result := True; //returns true = clicked on moss
Exit;
end;
end;
end else
if DebugLines then //DebugLines
Writeln('Found Moss in ' + IntToStr(TimeFromMark(DetectTime)) + ' ms, but failed to find UpText.');
end;
end; //PaintDebug: clearing the drawings on SMART
end;
end;



function FindBones(X1,X2,X3,X4: Integer) : Boolean; //returns true if uptext is 'Take'
var
TPA : TPointArray;
ATPA : Array of TPointArray;
i : Integer;
MinPoints, xmid, ymid : Integer;
begin
MinPoints := 50;
FindColorsTolerance(TPA,11975103,X1,X2,X3,X4,25);

SortTPAFrom(TPA,Point(MSCX,MSCY)); //excluding points near middle
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - MSCX) < 20) and (Abs(TPA[i].y - MSCY) < 25) then
Break;
SetArrayLength(TPA,i);

if (High(TPA)> 0) then
begin

ATPA := SplitTPA(TPA,10); //splitting the TPA

SortATPASize(ATPA,True); //excluding TPAs with less than MinPoints points
for i:=0 to High(ATPA) do
begin
if High(ATPA[i]) < MinPoints then
Break;
end;
if i = 0 then Inc(i);
SetArrayLength(ATPA,i);

if DebugWindow then //DebugWindow
OpenDebugWindow(TPA,ATPA,false,IntToBox(0,0,0,0));

if (High(ATPA[0]) < MinPoints) then //to avoid errors
Exit;

if MiddleTPAEx(ATPA[0],xmid,ymid) then //getting the middle point of the TPA, moving mouse there then looking for uptext
begin
MMouse(xmid,ymid,0,0);
Wait(100);
if IsUpTextEx('ake') then
begin
Result := True; //returning true
GetMousePos(X,Y);
Exit;
end;
end;
end;
Result := False;

end;



function FindCharm(Which: String; Colors, Tolerances: TIntegerArray; MinPoints: Integer) : Boolean; //returns true if uptext is 'Take'
var
TPA, CharmTPA : TPointArray;
ATPA : Array of TPointArray;
i : Integer;
xmid, ymid : Integer;
begin
for i:=0 to High(Colors) do
begin
FindColorsTolerance(CharmTPA,Colors[i],MSX1,MSY1,MSX2,MSY2,Tolerances[i]);
if DebugLines then //DebugLines
if (High(CharmTPA) > 0) then
Writeln('[Charms] Found ' + IntToStr(High(CharmTPA)) + ' pixels for Color: ' +IntToStr(Colors[i]) + '. Tolerance is: ' + IntToStr(Tolerances[i]));
AppendTPA(TPA,CharmTPA);
end;

SortTPAFrom(TPA,Point(MSCX,MSCY)); //excluding poinst near middle
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - MSCX) < 30) and (Abs(TPA[i].y - MSCY) < 30) then
Break;
SetArrayLength(TPA,i);


if (High(TPA)> 0) then
begin
ATPA := SplitTPA(TPA,15); //splitting the TPA

SortATPASize(ATPA,True);

if High(ATPA[0]) < MinPoints then //getting only the biggest TPA (it everything is fine, this function wont find any extra pixels)
Exit;

if DebugWindow then //DebugWindow
OpenDebugWindow(TPA,ATPA,false,IntToBox(0,0,0,0));

if MiddleTPAEx(ATPA[0],xmid,ymid) then //getting the middle of the TPA, moving mouse there then looking for uptext
begin
MMouse(xmid,ymid,0,0);
Wait(100);
if PaintDebug then
SMART_ClearCanvasArea(IntToBox(MSX1,MSY1,MSX2,MSY2));
if IsUpTextEx('ake') then
begin
Result := True; //returning true
GetMousePos(X,Y);
Exit;
end;
end;
end;
Result := False;
end;



procedure FindAllCharms; //this will call the FindCharm() for all the charms with the given parameters
var
Colors, Tolerances : Array of Integer;
begin
if PickUpCharms then //if charms enabled
begin
StatusWithPaint('Looking for charms.');

Colors := [5804446,5935011,5344659,5735582,5472916];
Tolerances := [10,10,10,10,10];
if FindCharm('Gold',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Gold') then
begin
StatusWithPaint('Picking up gold charm.');
Inc(GoldCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

Colors := [5010263,6982265,5471587,5730659];
Tolerances := [10,5,5,4];
if FindCharm('Green',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Green') then
begin
StatusWithPaint('Picking up green charm.');
Inc(GreenCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

Colors := [6183977,8552249];
Tolerances := [10,10];
if FindCharm('Blue',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Blue') then
begin
StatusWithPaint('Picking up blue charm.');
Inc(BlueCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

Colors := [3295859,2567297,3290481];
Tolerances := [8,8,10];
if FindCharm('Crimson',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Crims') then
begin
StatusWithPaint('Picking up crimson charm.');
Inc(CrimsonCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

end;
end;



function WaitInFight(Timeout: Integer) : Boolean; //waits until Timeout or till we get into a fight (will return true in this case)
var
X,Y,XP1,XP2,ShieldDTM,Time : Integer;
begin
XP1 := GetXPBar(XPCounter);
MarkTime(Time);
ShieldDTM := DTMFromString('mQwAAAHicY2ZgYGBlYWAQAmIOIJZmZGCQAmJ1IGax9mT4+/cvA9eCJwxcQHUwzIiEgQAAxXEFvA==');
repeat
XP2 := GetXPBar(XPCounter);
if (XP2 > XP1) then
begin
if DebugLines then
Writeln('XP is increased, we are fighting.');
if PaintDebug then
begin
SMART_DrawBoxEx(false,IntToBox(524,54,543,73),ClYellow);
Wait(100);
SMART_ClearCanvasArea(IntToBox(520,50,547,77));
end;
Result := True;
FreeDTM(ShieldDTM);
Exit;
end;
if (TimeFromMark(Time) > 3000) and FindDTM(ShieldDTM,X,Y,MSX1,MSY1,MSX2,MSY2) then //if xp is increased or shield dtm found (3000 seconds is for not the detect the blue shield of the previous fight)
begin
if DebugLines then
Writeln('Blue shield found, we are fighting.');
Result := True;
FreeDTM(ShieldDTM);
Exit;
end;
until (TimeFromMark(Time) > Timeout)
FreeDTM(ShieldDTM);
Result := False;
end;



function FindRedBar : Boolean;
var
X,Y,RedBarDTM : Integer;
begin
Result := False;
RedBarDTM := DTMFromString('mlwAAAHicY2dgYDBnZmCQBWIZKB0ExQpA3AiUr2OA0C1QDOPvZOBgsGZnwsBdDIwM+AAjHgwFAAvPB5w=');
if FindDTM(RedBarDTM,X,Y,MSX1,MSY1,MSX2,MSY2) then
begin
if DebugLines then
Writeln('Found redbar, we killed it.');
if PaintDebug then
begin
SMART_DrawBoxEx(false,IntToBox(X-30,Y-10,X+30,Y+10),ClYellow); //drawing box around the redbar
Wait(100);
SMART_ClearCanvasArea(IntToBox(MSX1,MSY1,MSX2,MSY2));
end;
Result := True;
end;
FreeDTM(RedBarDTM);
end;



procedure HopWorld;
var
FailTime : Integer;
begin
StatusWithPaint('Hopping.');
Inc(WorldHops);

MarkTime(FailTime);
repeat
ExitToLobby;
if TimeFromMark(FailTime) > 30000 then //sometimes RS crashes when going to lobby (black screen)
EndScript('Failed to exit to lobby when hopping.');
until LobbyScreen;

OpenWorldScreen;
SelectWorld(RandomWorld(true,false)); //member world, not pvp

MarkTime(FailTime);
repeat
LoginPlayer;
if TimeFromMark(FailTime) > 60000 then //sometimes RS crashes at login (black screen)
EndScript('Failed to login after hopping.');
until LoggedIn

Wait(RandomRange(500,6000));
ToggleXPBar(true);
SetAngle(SRL_ANGLE_HIGH);
end;



procedure WalkToCenter; //simple SPS walking to center (will improve in the future)
begin
StatusWithPaint('Walking to center.');
SPS_WalkToPos(Point(335, 374)); //no need randomness, because its not accurate
end;



procedure SpecialAttack;
var
X,Y,DTM100,DTM75,DTM60,DTM55,DTM50,DTM25,i,FailTime : Integer;
begin
if UseSpecAttacks and ((TimeFromMark(SpecTime) > SpecWait) or (SpecNumber > 0)) then //will enter if specials are turned on AND (if its time to check for special OR we have remaining specials to do)
begin
StatusWithPaint('Checking special attack.');
DTM100 := DTMFromString('mWAAAAHicY2FgYHBgYmCwB+IjULyQkYFhHRAvAOI1QFyzIo9BSl+EwT/XkiGi2oGBC6gHGTOiYRAAAPnmCNY='); //DTMS for 100%,75% ... special bars
DTM75 := DTMFromString('mQwAAAHicY2ZgYLBnguAFIMzIwLAWiJcBsXOyIYOmpwJDep83AxdQHQwzImEgAAD6tQXo');
DTM60 := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+IuIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAooAdH');
DTM55 := DTMFromString('mQwAAAHicY2ZgYGhmgeDjQCzNxMCgCcSyQOycbMggpS/CMOFIPQMXUB0MMyJhIAAA5cgFbA==');
DTM50 := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+JaIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAl1Qc6');
DTM25 := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+IoIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAeUAcX');
SpecNumber := 0;
MarkTime(FailTime);
repeat
if (TimeFromMark(FailTime) > 5000) then Exit; //if failed to switch tabs, then it exits
GameTab(tab_Combat);
until (GetCurrentTab = tab_Combat)
SpecNumber := 0; //no matter if we have remaining specials to do, we will set it to 0 and determine it again
case SpecUsage of //determining how many specials we can do
100:
if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
60:
if FindDTM(DTM60,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
55:
if FindDTM(DTM55,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
50:
begin
if FindDTM(DTM50,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 2;
end;
25:
begin
if FindDTM(DTM25,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
if FindDTM(DTM50,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 2;
if FindDTM(DTM75,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 3;
if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 4;
end;
end;
MarkTime(SpecTime);
SpecWait := RandomRange(15000,60000); //next spec check in 15-60 seconds
if SpecNumber > 0 then //if we can spec
begin
StatusWithPaint('Using special attack.');
MouseBox(574,416,706,428,mouse_left);
Dec(SpecNumber);
end else //it cant do spec
begin
StatusWithPaint('Not enough special.');
Wait(RandomRange(500,4000));
StatusWithPaint('Back to fighting.');
MarkTime(FailTime);
repeat
if (TimeFromMark(FailTime) > 5000) then Exit;
GameTab(tab_Inv);
until (GetCurrentTab = tab_Inv)
end;
FreeDTM(DTM100);
FreeDTM(DTM75);
FreeDTM(DTM60);
FreeDTM(DTM55);
FreeDTM(DTM50);
FreeDTM(DTM25);
end;
end;



procedure LoginCheck;
begin
if not LoggedIn then
begin
StatusWithPaint('Logging in.');
if not LoginPlayer then
EndScript('We got logged out somehow and cant log in.');
end;
end;



procedure HpCheck;
var
colorstring, lobs, peaches : String;
FailTime, Amount : Integer;
done : Boolean;
begin
if (GetMMLevels('hp', colorstring) < EatAt) then
begin
MarkTime(FailTime);
repeat
if not b2p then //if not using B2P yet then we eat a simple food (lobster)
begin
StatusWithPaint('Eating lobster.');
Amount := 120; //healing amount for lobster
lobs := 'mggAAAHicY2NgYPjPxMDAzczAwMcMYX8E4p9ALMbIwMAKxNxArMAI4fMC8f4EGaAuJgwsAiSxYUYcGAIAcgoGSA==';
if not EatFood(lobs) then
begin //if out of food
if not BonesToPeaches then //if not using B2P, then we log out
EndScript('Out of food.')
else
b2p := True; //lets start using B2P
end;
end;
if b2p then
begin
StatusWithPaint('Eating peaches.');
Amount := 80; //healing amount for peach
peaches := '78DA632C60626070626440069B3B52194480344C94310FA8C60C550D030313AA9A32A01A0B026A6A806A1C08A8A906AA7127A006E4663F026A52883007A4C69E809A4CC2FE0200D76708C1'
if not EatFood(peaches) then //if out of peaches
begin
StatusWithPaint('Breaking B2P.');
if not BreakB2P then //if out of tablets
EndScript('Out of B2P tablets.');
if not EatFood(peaches) then //if broke tablet but cant eat peaches
EndScript('Failed to eat peaches after broking B2P.');
end;
end;
if (GetMMLevels('hp', colorstring) > (HpLevel * 10 - Amount)) or (TimeFromMark(FailTime) > 30000) then //if we no need to eat more (current hp > (maxhp - healamout)) (30 seconds timeout for fail safe)
done := True;
until done
end;
end;



procedure NoobCheck;
begin
if Length(GetMinimapDotsin('player',592,49,662,120)) > 0 then
begin
StatusWithPaint('Found a noob, waiting.');
MakeScreenShot('C:\Simba\Screenshots\ChaosMossKiller\noobs\');
Wait(RandomRange(5000,10000));
HopWorld;
end;
end;



function BonesCheck : Boolean;
var
LookedForBones : Integer;
begin
Result := False;
if BonesToPeaches then
begin //if using B2P then we need to collect bones
if not InvFull then
begin
LookedForBones := 0;
repeat
if FindBones(MSX1,MSY1,MSX2,MSY2) then
begin
StatusWithPaint('Picking up bones.');
Mouse(X,Y,0,0,mouse_right);
ChooseOptionCharms('ake Big');
Wait(1000);
repeat until not IsMoving
Result := True;
end;
Inc(LookedForBones);
until (InvFull) or (LookedForBones = 5) //looking for bones max 5 times (failsafe)
end;
end;
end;



procedure RandomsCheck;
begin
if FindNormalRandoms then
EndScript('Random event found!');
end;



procedure AmmoCheck; //function for Ranging
var
i : Integer;
done : Boolean;
begin
if LevelString = 'RNG' then
if FindChatBoxText('You have no ammo',8,ClBlack) then //ammo check
begin
StatusWithPaint('Out of ammo.');
Wait(1000);
if srl_inFight then
begin
StatusWithPaint('Still fighting, removing weapon.');
repeat until GameTab(tab_Inv)
if InvFull then
begin
i := 5;
done := False;
repeat
MMouseItem(i);
if IsUpTextMultiCustom(['Bury','ury','Eat','at']) then
begin
ClickMouse2(mouse_right);
if ChooseOptionMulti(['Drop','rop']) then
done := True;
end;
Inc(i);
until done
end;
repeat until GameTab(tab_Equip);
MouseBox(573,294,594,311,mouse_left);
StatusWithPaint('Removed weapon.');
EndScript('Out of ammo.');
end;

end;
end;



procedure SetupScript;
begin
ClearDebug;
Disguise('ChaosMossKiller');
Status('Starting script.');
Smart_Server := 10;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
ActivateClient;
DeclarePlayers;
SetupSRLStats(680, SRLStats_User, SRLStats_Password);
SPS_Setup(RUNESCAPE_OTHER,['chaos_tunnels']);
if PaintDebug then
SMART_ClearCanvas;
Status('Logging in.');
LoginPlayer;
end;



procedure Startup;
var
fails, FailTime : Integer;
done : Boolean;
begin
if srl_inFight then
begin
StatusWithPaint('Waiting till fight is over.');
repeat until not srl_InFight
end;

fails := 0;
done := True;
MarkTime(FailTime);
repeat
ToggleXPBar(True);
TrainedLevel := GetSkillLevel(TrainedSkill);
if (TrainedLevel = -1) then
begin
done := False;
fails := fails+1;
end;
HpLevel := GetSkillLevel('Hitpoints');
if (HpLevel = -1) then
begin
done := False;
fails := fails+1;
end;
StartXPtillNext := XPTillNextLevel(TrainedSkill);
if (StartXPtillNext = -1) then
begin
done := False;
fails := fails+1;
end;
StartXP := GetXPBar(XPCounter);
if (StartXP = -1) then
begin
done := False;
fails := fails+1;
end;
if (fails = 3) or (TimeFromMark(FailTime) > 30000) then
EndScript('Startup fail. Cant get level/read xps.');
until done

case TrainedSkill of
'Attack' : LevelString := 'ATK';
'Strength' : LevelString := 'STR';
'Defence' : LevelString := 'DEF';
'Range' : LevelString := 'RNG';
end;

case DebugLines of
true: doreport := False;
false: doreport := True;
end;

b2p := False;
LastXP := 0;
WorldHops := 0;
B2PUsed := 0;
FoodUsed := 0;
GoldCharms := 0;
GreenCharms := 0;
BlueCharms := 0;
CrimsonCharms := 0;

if UseSpecAttacks then
begin
SpecNumber := 0;
SpecWait := RandomRange(15000,45000);
MarkTime(SpecTime);
end;

ClearDebug;
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' ChaosMossKiller ' + Version);
WriteLn(' - HP level : ' + IntToStr(HpLevel));
Writeln(' - ' + LevelString + ' level : ' + IntToStr(TrainedLevel));
Writeln(' - XP till next : ' + IntToStr(StartXPtillNext));
Writeln(' - XP Bar : ' + IntToStr(StartXP));
WriteLn(' - Starting script...');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');

MarkTime(StartTime);
SetAngle(SRL_ANGLE_HIGH);
end;



procedure Main;
var
DetectTime, KillTime : Integer;
done : Boolean;
begin
repeat

StatusWithPaint('Looking for Mosses.');
done := False;
MarkTime(DetectTime);
repeat
if (TimeFromMark(DetectTime) > 180000) then //180 seconds failsafe
EndScript('Cant find Mosses.');
if FindMoss(true) then //if clicked on moss
begin
if WaitInFight(4000) then //checking if we are fighting
done:=True
end else
begin //if failed to attack moss
StatusWithPaint(IntToStr(TimeFromMark(DetectTime))+'ms');
case Random(20) of
0: CompassMovement(-120,120,false); //rotating camera for better view
end;
LoginCheck;
RandomsCheck;
if (TimeFromMark(DetectTime) > 10000) then //walking back to middle
WalkToCenter;
end;
until done //we are fighting now


StatusWithPaint('Fighting.');
MarkTime(KillTime);
repeat
Antiban;
AmmoCheck;
if (TimeFromMark(KillTime) < 5000) then //we dont want to waste special attack, so we only using it in the first 5 seconds
SpecialAttack;
if ((TimeFromMark(KillTime) > 5000) and (FindRedBar)) then //we are looking for redbar after 5 seconds of fighting
Break; //end of fight
Wait(500);
until ((TimeFromMark(KillTime) > 10000) and (not srl_inFight)) //failsafe is: 10 seconds and no hpbar above the player -> end of fight


StatusWithPaint('Killed Moss. Took '+MsToTime(TimeFromMark(KillTime),Time_Formal)+'.');
Report;
stats_Commit; //committing stats (no variebles yet, only time)
BonesCheck; //this will look for bones if needed and pickst them up
FindAllCharms; //this will look for charms and picks them up
LoginCheck;
NoobCheck; //this will look for other players around
HpCheck; //this will check hp and eat (use b2p) if needed

until False
end;



begin

SetupScript;
Startup;
Main;

end.

Thanks in advance :)

Leonardo Da Vinci

2012-07-27 13:57:40

From: kevin33
@LAW this compiles for you:

program new;
{$DEFINE SMART}
{$I SRL/SRL.simba}
//{$I srl/srl/misc/debug.simba}
{$IFDEF SMART}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

{$ENDIF}
var
a,b:TBox;
StartTime, StartExp, angleOne, angleTwo:integer;
firsttime, detected:boolean;
STime, breakTimeS :integer;

const
breakTime= 55; // break after X amount of minutes
breakLength= 12; // break for X amount of minutes
totalTimeOnPlayer= 200; // play for a total amount of minutes
detectionType= 1; //if you have issues with 0 (detects when stopped chopping), use 1.

procedure declareplayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
Players[0].Strings[0] := 'VE'; // Location: VN,VE,CW
end;

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// DONT GO PAST HERE //
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////

function AutoColorIvy: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.06, 0.15);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 4421725, MSX1, MSY1, MSX2, MSY2, 5);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 9.11) and (X <= 15.81) and (Y >= 11.95) and (Y <= 20.87) and (Z >= 5.94) and (Z <= 10.05) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

function AutoColorNest: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.47, 1.24);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 3885645, MSX1+1, MSY1+1, MSX2-1, MSY2-1, 8);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 4.22) and (X <= 8.40) and (Y >= 4.48) and (Y <= 8.83) and (Z >= 2.94) and (Z <= 8.01) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

procedure antiban();
begin
case random(200) of
1: begin MakeCompass(RandomRange(angleOne-20,angleTwo+20)); makeCompass(RandomRange(angleOne,angleTwo)); end;
2: PickUpMouse;
3: begin RandomAngle(True); setangle(SRL_Angle_Low); end;
4: begin HoverSkill(skill_Woodcutting,false); mmouse(50,50, 300,200); end;
5..10: mmouse(50,50, 300,200);
end;
end;

procedure findIvy();
var
i, highATPA : integer;
x, y : integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorIvy, MSX1, MSY1, MSX2, MSY2, 2);
ATPA := splitTPA(TPA,6);
//debugATPAbounds(ATPA);
//SMART_DebugATPA(false, ATPA);

highATPA := high(ATPA);
for i := 0 to highATPA do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x-2, y-2, 4, 4);
getmousepos(x,y);
wait(300 + random(400));
if isUpText('Ivy') then
begin
mouse(x,y,0,0,true);
case random(4) of
1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
end;
break;
end;
end;
end;

function findNest():boolean;
var
i, highATPA : integer;
x, y : integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
result:=false;
FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorNest,54, 193, 506, 261, 2);
ATPA := splitTPA(TPA,10);
//debugATPAbounds(ATPA);
//SMART_DebugATPA(false, ATPA);

highATPA := high(ATPA);
for i := 0 to highATPA do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x-2, y-2, 4, 4);
getmousepos(x,y);
wait(300 + random(400));
if isUpText('nest') then
begin
mouse(x,y,0,0,true);
case random(4) of
1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
end;
result:=true;
break;
end;
end;
end;

function detectBirdNestMessage():boolean;
var
x,y:integer;
begin
result:=false;
if(findcolor(x,y,255, 9, 428, 84, 457))then
begin
writeln('Detected Bird Nest');
if(findNest)then
result:=true;
end;
end;

procedure PrintProggy();
var
background: TBox;
x,y,i: Integer;
Exp,ExpPerHour:integer;
boxpoints: Array of TPoint;
begin
{$IFDEF SMART}
Exp := GetXPBarTotal-StartExp;
ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000+1);
if(firsttime)then
begin
SMART_clearcanvas();
background.X1:= MMx1-30;
background.Y1:= MMy1-10;
background.X2:= MMx2+62;
background.Y2:= MMy2+7;
setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
i:=0;
for x:= background.X1 to background.X2-1 do
begin
for y:= background.Y1 to background.Y2-1 do
begin
boxpoints[i]:= point(x,y);
inc(i);
end;
end;
SMART_DrawDotsEx(false, boxpoints, 3160642);
end else
begin
background.X1:= 590;
background.Y1:= 78;
background.X2:= 723;
background.Y2:= 122;
setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
i:=0;
for x:= background.X1 to background.X2-1 do
begin
for y:= background.Y1 to background.Y2-1 do
begin
boxpoints[i]:= point(x,y);
inc(i);
end;
end;
SMART_DrawDotsEx(false, boxpoints, 3160642);
end;

SMART_DrawText(MMX1-20, MMY1, 'UpChars', 'Warrior''s IvyCutter', ClLime);
SMART_DrawText(MMX1-20, MMY1+15, 'UpChars', 'By, x[Warrior]x3500', ClLime);
SMART_DrawText(MMX1-20, MMY1+30, 'UpChars', '------------------------', ClLime);
SMART_DrawText(MMX1-20, MMY1+55, 'UpChars', 'Player: ' + Players[CurrentPlayer].Name, ClLime);
SMART_DrawText(MMX1-20, MMY1+70, 'UpChars', 'Total Exp: ' + inttostr(Exp), ClLime);
SMART_DrawText(MMX1-20, MMY1+85, 'UpChars', 'Exp per Hour: ' + tostr(ExpPerHour), ClLime);
SMART_DrawText(MMX1-20, MMY1+100, 'UpChars', 'Total Time: ' + inttostr(GetTimeRunning/1000/60) + ' minutes', ClLime);
SMART_DrawText(MMX1-20, MMY1+110, 'UpChars', '------------------------', ClLime);
{$ENDIF}
end;

procedure proggy();
var
Exp, ExpPerHour: integer;
begin
cleardebug();
Exp := GetXPBarTotal-StartExp;
ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000);
writeLn('---------- Warrior''s -----------');
writeLn('---------- IvyCutter -----------');
writeLn('Total Time: ' + TimeRunning);
writeLn('Exp Earned: ' + IntToStr(Exp));
writeLn('Exp Per Hour: ' + IntToStr(ExpPerHour));
writeLn('--------------------------------');
end;

procedure initBreakTime();
begin
breakTimeS:= breakTime*60-((breakTime*60)*(1/10))+random((breakTime*60)*(2/10));
STime:=GetSystemTime();
end;

function detectBreakTime():boolean;
begin
result:=false;
if((Getsystemtime-STime)/1000>breakTimeS)then
result:=true;
end;

function detectTotalRunTime():boolean;
begin
result:=false;
if((Getsystemtime-StartTime)/1000/60>TotalTimeOnPlayer)then
result:=true;
end;

procedure doBreak();
var
breakingFor:integer;
begin
breakingFor:= breaklength*60-((breaklength*60)*(1/10))+random((breaklength*60)*(2/10));
writeln('Breaking for: '+inttostr(breakingFor/60)+' minutes.');
writeln('Start Break Time: '+MStoTime(Getsystemtime,Time_Bare));
logout();
wait(breakingFor*1000);
loginplayer();
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
end;

procedure setupPlayer();
begin
case Players[CurrentPlayer].Strings[0] of
'VN','FN': begin angleOne:=180; angleTwo:=180; end;
'VE','T': begin angleOne:=90; angleTwo:=90; end;
'FS','CW': begin angleOne:=0; angleTwo:=0; end;
'A': begin angleOne:=270; angleTwo:=270; end;
end;
if(not(LoggedIn))then
LoginPlayer;
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
if(not(IsXPBarOpen))then
ToggleXPBar(true);
if(StartExp=0)then
StartExp := GetXPBarTotal;

a.X1:= 243;
a.X2:= 280;
a.Y1:= 86;
a.Y2:= 174;

b.X1:= 242;
b.X2:= 268;
b.Y1:= 103;
b.Y2:= 126;

end;


begin
{$IFDEF SIMBAMAJOR980}//<--- THIS
Smart_Server := 0;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}//<--- THIS
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
{$ENDIF}

setupsrl;
DeclarePlayers;
StartTime := GetSystemTime;
StartExp := GetXPBarTotal;
firsttime := true;
repeat
setupPlayer();
repeat
initBreakTime();
repeat
printProggy();
firsttime:=false;
findIvy();
wait(400+random(300));
detected:=false;
repeat
antiban();
proggy();
if(findnormalrandoms)then
begin
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
end;
case detectionType of
0: detected:= (averagepixelshift(b,200,2000)<900);
1: detected:= (averagepixelshift(a,200,2000)<1000);
end;
until(detected) or (detectBirdNestMessage);
wait(random(400));
findnormalrandoms();
until(detectBreakTime);
doBreak();
until(detectTotalRunTime);
nextplayer(false);
until(allplayersinactive);

end.




Thanks buddy, much appreciated!
However, I keep getting this error:
Current player: 
Error: Exception: The Points you passed to DrawATPA exceed the bitmap's bounds at line 90
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, 4]

kevin33

2012-07-27 14:03:11

@LAW…not gonna lie, I have no idea how to fix the error your getting. Im not that familiar with TPA's and ATPA'a and such so Im not familiar with errors and how to properly use them. Perhaps someone else may be able to tell you what to do.

Leonardo Da Vinci

2012-07-27 14:04:53

From: kevin33
@LAW…not gonna lie, I have no idea how to fix the error your getting. Im not that familiar with TPA's and ATPA'a and such so Im not familiar with errors and how to properly use them. Perhaps someone else may be able to tell you what to do.


Ah well, I appreciate your effort very much.

Austin

2012-07-27 15:01:12

From: Law and Justice
Thanks buddy, much appreciated!
However, I keep getting this error:
Current player: 
Error: Exception: The Points you passed to DrawATPA exceed the bitmap's bounds at line 90
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, 4]


Yeah, im getting that same error too with this one script, idk how to fix it, if i get an answer i'll share it with you though

Leonardo Da Vinci

2012-07-27 15:34:34

From: AustnW
Yeah, im getting that same error too with this one script, idk how to fix it, if i get an answer i'll share it with you though


Well, I'm glad that I'm not the only one who's having that problem.
Thanks, if I find a solution I'll share it with you too.

ickcay

2012-07-27 15:45:51

Ok literally I have spent hours trying to get Simba to work and whatever I do there is always a different error or something that doesnt work, and everything on this forum is scattered so it takes so long to find what I need. Someone needs to put together a youtube video with every single step in setting up Simba, with easily understandable words that people without computer degrees can understand… are there any of these videos or guides out there? sorry, just so frustrated

kevin33

2012-07-27 15:47:50

From: ickcay
Ok literally I have spent hours trying to get Simba to work and whatever I do there is always a different error or something that doesnt work, and everything on this forum is scattered so it takes so long to find what I need. Someone needs to put together a youtube video with every single step in setting up Simba, with easily understandable words that people without computer degrees can understand… are there any of these videos or guides out there? sorry, just so frustrated


Well what is it that you need help with exactly? I will help you with everything you just need to tell me exactly what your stuck on. No one can help you if you just say your utterly lost. We need details.

ickcay

2012-07-27 16:11:46

From: kevin33
Well what is it that you need help with exactly? I will help you with everything you just need to tell me exactly what your stuck on. No one can help you if you just say your utterly lost. We need details.


I PMed you

Wardancer

2012-07-27 16:17:15

** Fatal Error: Pairing Clients; Terminating Script **

I keep getting this error even though I downloaded smart 7.2 and pasted the files in my simba folder. However, I realized that all I had on that folder was the simba.exe and the uninstaller. Is that normal or I was also supposed to have other files/folders before adding the smart 7.2 files?

Austin

2012-07-27 16:42:00

From: Wardancer
** Fatal Error: Pairing Clients; Terminating Script **

I keep getting this error even though I downloaded smart 7.2 and pasted the files in my simba folder. However, I realized that all I had on that folder was the simba.exe and the uninstaller. Is that normal or I was also supposed to have other files/folders before adding the smart 7.2 files?

You're supposed to have Simba .991 and have extracted the SMART v7.2 contents to the plugins folder and allowed it to override them. Once you have that done it will work

Wardancer

2012-07-27 17:06:45

I found out the mistake I did. I'm posting so everyone with the similar problem can also get it solved. Instead of downloading the new .991 version with everything in it, I found the .exe of Simba and sticked to it. It explains why I didn't have any folder in the Simba folder. Make sure that you download 0.99 from the correct place (http://villavu.com/forum/showthread.php?t=85725) if you have the same issue as me.

I'm now facing a different issue though. I get no error message, but the smart client doesn't open up after I press play. Will look around the forum to try to find what the issue is, but I don't mind if someone PMs me the solution.

EDIT: Can't find the problem at all after searching for over an hour. Would appreciate any help.

runing low

2012-07-27 20:13:32

hey i did everything suggested smart 7.2 and new simba and put benland files in plugins and getting this error

getting error in paintsmart tab unknown indintified at line 40
smartgetdebugdc

Caotom

2012-07-27 20:15:40

From: runing low
hey i did everything suggested smart 7.2 and new simba and put benland files in plugins and getting this error

getting error in paintsmart tab unknown indintified at line 40
smartgetdebugdc


Please search the error before posting. http://villavu.com/forum/showthread.php?t=87299&highlight=smartgetdebugdc
Change
{$I SRL/SRL/Misc/PaintSmart.Simba}
to
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

~Caotom

runing low

2012-07-27 20:20:02

From: Caotom
Please search the error before posting. http://villavu.com/forum/showthread.php?t=87299&highlight=smartgetdebugdc
Change
{$I SRL/SRL/Misc/PaintSmart.Simba}
to
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

~Caotom


wow thanks for quick reply

i took your advice and am now getting this error

[Error] C:\Users\Kevin\Desktop\gump astral.Simba(115:20): Unknown identifier 'SmartGetDebugDC' at line 114
Compiling failed.


also i added the plugins, was there anything i needed to add to includes folder?

edit: also my debug window doesn't seem to be popping up, would anyone help via teamviewer?

msn:jadfailz@hotmail.com

AusKingdom

2012-07-27 20:25:04

I've got the same error and i've tried the fix and it still doesn't work. :/

Caotom

2012-07-27 21:17:56

Trying simply changing
{$I SRL/SRL/Misc/PaintSmart.Simba}
to
{$I SRL/SRL/Misc/SmartGraphics.Simba}
Simba may be having trouble recognising that you are updated to 0.99 or above.

~Caotom

AusKingdom

2012-07-27 22:17:24

I tried that. Unknown identifier 'Smart_server' at line 318

I get this error now.

Silent

2012-07-27 22:21:33

From: AusKingdom
I tried that. Unknown identifier 'Smart_server' at line 318

I get this error now.


Change:
begin
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
end.
to:
begin
SRL_SixHourFix := True;
Smart_FixSpeed := True;

SetupSRL;
end.

Any other errors like this, refer to this thread -> http://villavu.com/forum/showthread.php?t=84334

dvander222

2012-07-27 22:27:07

yeah they should put up a tut on what to do now, and possibly add a forum thread for working scripts and scripts that need to be updated. Sorta like the old reflection scripts thread they have.

But what do I know, I am just a poor ol nooblet.. :)

Justin

2012-07-27 23:15:48

From: dvander222
yeah they should put up a tut on what to do now, and possibly add a forum thread for working scripts and scripts that need to be updated. Sorta like the old reflection scripts thread they have.

But what do I know, I am just a poor ol nooblet.. :)


There are plenty of posts around the forums on how to fix the issues…

iiNveRsioN

2012-07-28 01:14:51

When trying to run multiple scripts it will pair them to each other resulting in one session. It doesn't open it's own smart but takes over one that is already being used. Running the scripts in the same Simba but separate tabs doesn't work either.

Silent

2012-07-28 01:18:56

From: iiNveRsioN
When trying to run multiple scripts it will pair them to each other resulting in one session. It doesn't open it's own smart but takes over one that is already being used. Running the scripts in the same Simba but separate tabs doesn't work either.


Try using SetupSmart(true);

In your scripts.

Edit: I should clear that up, call that function before after SetupSRL;

iiNveRsioN

2012-07-28 01:24:44

From: Silent SPY
Try using SetupSmart(true);

In your scripts.



Ok, I'll give it a try.

iiNveRsioN

2012-07-28 03:00:57

Ok, it seems to be okay for the moment. Another thing is that when you close smart/simba it doesn't close the process smartremote.. so they build up unless you close them manually by killing the process.

Justin

2012-07-28 03:02:01

From: iiNveRsioN
Ok, it seems to be okay for the moment. Another thing is that when you close smart/simba it doesn't close the process smartremote.. so they build up unless you close them manually by killing the process.


Just checked my processes.. You are right.


runing low

2012-07-28 05:27:10

From: Silent SPY
Try using SetupSmart(true);

In your scripts.

Edit: I should clear that up, call that function before after SetupSRL;


thanks for all your help silent spy, I'm having a issue where i make it to the rs log in screen but it doesn't type user pass in, also there's no debug window so i'm not sure what the error is

do i jus log in manually or what?

Leonardo Da Vinci

2012-07-28 05:32:06

So I can't really get any scripts working…
Anyone able to share any script that is? I'd appreciate it!

Justin

2012-07-28 05:32:17

From: runing low
thanks for all your help silent spy, I'm having a issue where i make it to the rs log in screen but it doesn't type user pass in, also there's no debug window so i'm not sure what the error is

do i jus log in manually or what?


Have you filled out the username and password section in DeclarePlayers?

Justin

2012-07-28 05:33:18

From: Law and Justice
So I can't really get any scripts working…
Anyone able to share any script that is? I'd appreciate it!


Better off posting the script that isn't working for you here

Leonardo Da Vinci

2012-07-28 05:38:33

From: [J]ustin
Better off posting the script that isn't working for you here


Yeah true.

Well, I'm trying to get this one working:
program new;
{$DEFINE SMART}
{$I SRL/SRL.simba}
//{$I srl/srl/misc/debug.simba}
{$IFDEF SMART}
{$I SRL/SRL/Misc/SmartGraphics.Simba}

{$ENDIF}
var
a,b:TBox;
StartTime, StartExp, angleOne, angleTwo:integer;
firsttime, detected:boolean;
STime, breakTimeS :integer;

const
breakTime= 55; // break after X amount of minutes
breakLength= 12; // break for X amount of minutes
totalTimeOnPlayer= 200; // play for a total amount of minutes
detectionType= 1; //if you have issues with 0 (detects when stopped chopping), use 1.

procedure declareplayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
Players[0].Strings[0] := 'VE'; // Location: VN,VE,CW
end;

///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// DONT GO PAST HERE //
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////

function AutoColorIvy: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.06, 0.15);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 4421725, MSX1, MSY1, MSX2, MSY2, 5);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 9.11) and (X <= 15.81) and (Y >= 11.95) and (Y <= 20.87) and (Z >= 5.94) and (Z <= 10.05) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

function AutoColorNest: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.47, 1.24);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 3885645, MSX1+1, MSY1+1, MSX2-1, MSY2-1, 8);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 4.22) and (X <= 8.40) and (Y >= 4.48) and (Y <= 8.83) and (Z >= 2.94) and (Z <= 8.01) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;

procedure antiban();
begin
case random(200) of
1: begin MakeCompass(RandomRange(angleOne-20,angleTwo+20)); makeCompass(RandomRange(angleOne,angleTwo)); end;
2: PickUpMouse;
3: begin RandomAngle(True); setangle(SRL_Angle_Low); end;
4: begin HoverSkill(skill_Woodcutting,false); mmouse(50,50, 300,200); end;
5..10: mmouse(50,50, 300,200);
end;
end;

procedure findIvy();
var
i, highATPA : integer;
x, y : integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorIvy, MSX1, MSY1, MSX2, MSY2, 2);
ATPA := splitTPA(TPA,6);
//debugATPAbounds(ATPA);
//SMART_DebugATPA(false, ATPA);

highATPA := high(ATPA);
for i := 0 to highATPA do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x-2, y-2, 4, 4);
getmousepos(x,y);
wait(300 + random(400));
if isUpText('Ivy') then
begin
mouse(x,y,0,0,true);
case random(4) of
1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
end;
break;
end;
end;
end;

function findNest():boolean;
var
i, highATPA : integer;
x, y : integer;
TPA : TPointArray;
ATPA : T2DPointArray;
begin
result:=false;
FindColorsSpiralTolerance(MScx, MScy, TPA, AutoColorNest,54, 193, 506, 261, 2);
ATPA := splitTPA(TPA,10);
//debugATPAbounds(ATPA);
//SMART_DebugATPA(false, ATPA);

highATPA := high(ATPA);
for i := 0 to highATPA do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x-2, y-2, 4, 4);
getmousepos(x,y);
wait(300 + random(400));
if isUpText('nest') then
begin
mouse(x,y,0,0,true);
case random(4) of
1: begin wait(400+random(300)); mmouse(x-100,y-100, 200, 200); end;
end;
result:=true;
break;
end;
end;
end;

function detectBirdNestMessage():boolean;
var
x,y:integer;
begin
result:=false;
if(findcolor(x,y,255, 9, 428, 84, 457))then
begin
writeln('Detected Bird Nest');
if(findNest)then
result:=true;
end;
end;

procedure PrintProggy();
var
background: TBox;
x,y,i: Integer;
Exp,ExpPerHour:integer;
boxpoints: Array of TPoint;
begin
{$IFDEF SMART}
Exp := GetXPBarTotal-StartExp;
ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000+1);
if(firsttime)then
begin
SMART_clearcanvas();
background.X1:= MMx1-30;
background.Y1:= MMy1-10;
background.X2:= MMx2+62;
background.Y2:= MMy2+7;
setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
i:=0;
for x:= background.X1 to background.X2-1 do
begin
for y:= background.Y1 to background.Y2-1 do
begin
boxpoints[i]:= point(x,y);
inc(i);
end;
end;
SMART_DrawDotsEx(false, boxpoints, 3160642);
end else
begin
background.X1:= 590;
background.Y1:= 78;
background.X2:= 723;
background.Y2:= 122;
setarraylength(boxpoints, ((background.X2-background.X1)*(background.Y2-background.Y1)));
i:=0;
for x:= background.X1 to background.X2-1 do
begin
for y:= background.Y1 to background.Y2-1 do
begin
boxpoints[i]:= point(x,y);
inc(i);
end;
end;
SMART_DrawDotsEx(false, boxpoints, 3160642);
end;

SMART_DrawText(MMX1-20, MMY1, 'UpChars', 'Warrior''s IvyCutter', ClLime);
SMART_DrawText(MMX1-20, MMY1+15, 'UpChars', 'By, x[Warrior]x3500', ClLime);
SMART_DrawText(MMX1-20, MMY1+30, 'UpChars', '------------------------', ClLime);
SMART_DrawText(MMX1-20, MMY1+55, 'UpChars', 'Player: ' + Players[CurrentPlayer].Name, ClLime);
SMART_DrawText(MMX1-20, MMY1+70, 'UpChars', 'Total Exp: ' + inttostr(Exp), ClLime);
SMART_DrawText(MMX1-20, MMY1+85, 'UpChars', 'Exp per Hour: ' + tostr(ExpPerHour), ClLime);
SMART_DrawText(MMX1-20, MMY1+100, 'UpChars', 'Total Time: ' + inttostr(GetTimeRunning/1000/60) + ' minutes', ClLime);
SMART_DrawText(MMX1-20, MMY1+110, 'UpChars', '------------------------', ClLime);
{$ENDIF}
end;

procedure proggy();
var
Exp, ExpPerHour: integer;
begin
cleardebug();
Exp := GetXPBarTotal-StartExp;
ExpPerHour := (3600*Exp) / ((Getsystemtime-StartTime)/1000);
writeLn('---------- Warrior''s -----------');
writeLn('---------- IvyCutter -----------');
writeLn('Total Time: ' + TimeRunning);
writeLn('Exp Earned: ' + IntToStr(Exp));
writeLn('Exp Per Hour: ' + IntToStr(ExpPerHour));
writeLn('--------------------------------');
end;

procedure initBreakTime();
begin
breakTimeS:= breakTime*60-((breakTime*60)*(1/10))+random((breakTime*60)*(2/10));
STime:=GetSystemTime();
end;

function detectBreakTime():boolean;
begin
result:=false;
if((Getsystemtime-STime)/1000>breakTimeS)then
result:=true;
end;

function detectTotalRunTime():boolean;
begin
result:=false;
if((Getsystemtime-StartTime)/1000/60>TotalTimeOnPlayer)then
result:=true;
end;

procedure doBreak();
var
breakingFor:integer;
begin
breakingFor:= breaklength*60-((breaklength*60)*(1/10))+random((breaklength*60)*(2/10));
writeln('Breaking for: '+inttostr(breakingFor/60)+' minutes.');
writeln('Start Break Time: '+MStoTime(Getsystemtime,Time_Bare));
logout();
wait(breakingFor*1000);
loginplayer();
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
end;

procedure setupPlayer();
begin
case Players[CurrentPlayer].Strings[0] of
'VN','FN': begin angleOne:=180; angleTwo:=180; end;
'VE','T': begin angleOne:=90; angleTwo:=90; end;
'FS','CW': begin angleOne:=0; angleTwo:=0; end;
'A': begin angleOne:=270; angleTwo:=270; end;
end;
if(not(LoggedIn))then
LoginPlayer;
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
if(not(IsXPBarOpen))then
ToggleXPBar(true);
if(StartExp=0)then
StartExp := GetXPBarTotal;

a.X1:= 243;
a.X2:= 280;
a.Y1:= 86;
a.Y2:= 174;

b.X1:= 242;
b.X2:= 268;
b.Y1:= 103;
b.Y2:= 126;

end;


begin
{$IFDEF SIMBAMAJOR980}//<--- THIS
Smart_Server := 0;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}//<--- THIS
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
{$ENDIF}

setupsrl;
DeclarePlayers;
StartTime := GetSystemTime;
StartExp := GetXPBarTotal;
firsttime := true;
repeat
setupPlayer();
repeat
initBreakTime();
repeat
printProggy();
firsttime:=false;
findIvy();
wait(400+random(300));
detected:=false;
repeat
antiban();
proggy();
if(findnormalrandoms)then
begin
setangle(SRL_Angle_Low);
makeCompass(RandomRange(angleOne,angleTwo));
end;
case detectionType of
0: detected:= (averagepixelshift(b,200,2000)<900);
1: detected:= (averagepixelshift(a,200,2000)<1000);
end;
until(detected) or (detectBirdNestMessage);
wait(random(400));
findnormalrandoms();
until(detectBreakTime);
doBreak();
until(detectTotalRunTime);
nextplayer(false);
until(allplayersinactive);

end.

But I keep getting this error:
Current player: 
Error: Exception: The Points you passed to DrawATPA exceed the bitmap's bounds at line 90
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, 4]

I would also like this one to work:
program ChaosMossKiller;
{$i srl/srl/misc/smart.simba}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$i srl/srl/misc/debug.simba}
{$i srl/srl/misc/paintsmart.simba}
const
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//========================ChaosMossKiller by hunt3rx3=======================v6.0
//READ THESE CAREFULLY!===================================================19 May
//*YOU MUST SET UP XP COUNTER FOR TRAINED LEVEL, OTHERWISE SCRIPT WONT WORK!====
//*FOOD:========================================================================
// -ONLY EATS LOBSTERS AND PEACHES=============================================
// -DONT USE B2P WITH BONECRUSHER! COMMON SENSE================================
//*CHARM LOOTING:===============================================================
// -WILL PICK UP CHARMS WHAT YOU CAN SEE WITH YOUR EYES!=======================
// -WONT RIGHT CLICK ALL THE LOOT PILES!=======================================
// -HAVE 1+ OF EACH AT START!==================================================
//*SPECIAL ATTACKS:=============================================================
// -ONLY PRIMARY WORN WEAPONS, WONT SWITCH WEAPONS!============================
// -KORASI NOT SUPPORTED! WOULD MESS UP THE SCRIPT!============================
//==============================================================================
SRLStats_User = ''; // Your SRL Stats ID (If you dont have one then just leave it as it is)
SRLStats_Password = ''; // Your SRL Stats Password (If you dont have one then just leave it as it is)

Username = '';
Password = '';

TrainedSkill = 'Strength'; // Attack, Strength, Defence, Range
XPCounter = 2; // 1,2,3
EatAt = 700; // 100-999

BonesToPeaches = True;
PickUpCharms = True;

UseSpecAttacks = False; // Only worn weapons. Not supported: Korasi.
SpecUsage = 55; // Spec usage of worn weapon. Supported: 25, 50, 55, 60, 100

PaintStatus = True; // set Private Chat off for this
PaintDebug = True;

TakeScreenShots = True; // (~100 kb jpeg, wont eat memory)
ScreenShotsPath = 'C:\Simba\Screenshots\ChaosMossKiller\';


DebugWindow = False;
DebugLines = False;
//==============================================================================
//===========UPDATES: [url]http://villavu.com/forum/showthread.php?t=74029===========[/url]
//==============================================================================
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Version = 'v6.0';


var
X, Y: Integer;
StartTime, StartXp, StartXPtillNext, TrainedLevel, HpLevel : Integer;
WorldHops, B2PUsed, FoodUsed, GoldCharms, GreenCharms, BlueCharms, CrimsonCharms : Integer;
SpecWait, SpecTime, SpecNumber : Integer;
LastXP : Extended;
LevelString : String;
doreport, b2p : Boolean;



procedure DeclarePlayers;
begin
NumberOfPlayers(1);
CurrentPlayer := 0;
with Players[0] do
begin
Name := UserName;
Pass := Password;
Active := True;
end;
end;



procedure MakeScreenShot(const FilePath : String); //example: 'C:\Simba\Screenshots\ChaosMossKiller\levelups'
var
fileName : String;
Year, Month, Day : Word;
i : Integer;
begin
if TakeScreenShots then
begin
if not DirectoryExists(ScreenShotsPath) then
CreateDirectory(ScreenShotsPath);
if not DirectoryExists(FilePath) then
CreateDirectory(FilePath);
DecodeDate(Date,Year,Month,Day);
i := 0;
repeat
i := i+1;
FileName := ToStr(Year) + '-' + ToStr(Month) + '-' + ToStr(Day) + ' (' + IntToStr(i) + ').jpg';
until not FileExists(FilePath + FileName)
SaveScreenShot(FilePath + FileName); //example: 2012-3-21 (1).jpg
end;
end;



procedure OpenDebugWindow(TPA: TPointArray; ATPA: array Of TPointArray; PaintBox: Boolean; Box: TBox); //box is for the dying Moss giant
var
BMP, x,y, i, Color : Integer;
TPABox: TBox;
begin
BMP := BitmapFromClient(0,0,MSX2,MSY2); //making a bitmap, adding the mainscreen image to it
DrawTPABitmap(BMP,TPA,clRed); //adding TPA to the bitmap

for i := 0 to high(ATPA) do
begin
if i = 0 then
Color := clYellow
else
Color := clBlack;

TPABox := getTPABounds(ATPA[i]); //getting the box of the TPA
for x := TPABox.x1 to TPABox.x2 do
begin
FastSetPixel(BMP, x, TPABox.y1, Color) //drawing lines
FastSetPixel(BMP, x, TPABox.y2, Color) //drawing lines
end;
for y := TPABox.y1 to TPABox.y2 do
begin
FastSetPixel(BMP, TPABox.x1, y, Color) //drawing lines
FastSetPixel(BMP, TPABox.x2, y, Color) //drawing lines
end;
end;

if PaintBox then //this is for the dying Moss giant
begin
for x := Box.x1 to Box.x2 do
begin
FastSetPixel(BMP, x, Box.y1, ClRed) //drawing lines
FastSetPixel(BMP, x, Box.y2, ClRed) //drawing lines
end;
for y := Box.y1 to Box.y2 do
begin
FastSetPixel(BMP, Box.x1, y, ClRed) //drawing lines
FastSetPixel(BMP, Box.x2, y, ClRed) //drawing lines
end;
end;
DebugBitmap(BMP);
FreeBitmap(BMP);
end;



function CurrentTime: string; //function for time, example [17:53:59]
var
Hour, Mins, Sec, MSec: Word;
begin
DecodeTime(Now, Hour, Mins, Sec, MSec);
Result := ('['+Padz(IntToStr(Hour), 2) + ':' + Padz(IntToStr(Mins), 2) + ':' + Padz(IntToStr(Sec), 2)+'] ');
end;



procedure EndScript(Reason : String); //function for ending, message box will pop up
begin
MakeScreenShot(ScreenShotsPath + 'stops\');
Disguise('Stopped');
Writeln(CurrentTime + Reason);
MessageBox(CurrentTime + Reason,'ChaosMossKiller',0); //message box as warning
TerminateScript;
end;



procedure StatusWithPaint(What : String); //Painting status on SMART
begin
Status(What);
if PaintStatus then
begin
SMART_ClearCanvasArea(IntToBox(MSX1,320,MSX2,343));
SMART_DrawTextEx(False,8,322,SmallChars,What,ClWhite); //drawing the text
end;
end;



procedure Report;
var
XP, XPHour, PrayXP, XPtillNext, TimeRun : Extended; //i have no clue why, but integer with Round() wont work
done : Boolean;
fails : Integer;
begin
if not DoReport then Exit;
fails := 0;
done := True;
repeat //reading XPCounter for xp gained
if (fails = 5) then
begin
Writeln(CurrentTime+'Failed to read XPBar. Turning off Reports.');
DoReport := False;
Exit;
end;
XP := GetXPBar(XPCounter)-StartXP;
if (XP + StartXP = -1) then //if fails to read xpbar it gives -1
begin
done := False;
fails := fails+1;
end;
until done

TimeRun := TimeFromMark(StartTime);
PrayXP := Round(XP / 240 * 15);
XPHour := Round(XP * (3600000 / TimeRun));
XPtillNext := StartXPtillNext - XP + LastXP; //LastXP = 0 untill we get a levelup

if (XPtillNext < 0) then //levelup check
begin
fails := 0;
done := True;
repeat //getting new level and xp till next
if (fails = 5) then
begin
Writeln(CurrentTime + 'Failed to get level/XPs. Turning off Reporting.');
DoReport := False;
Exit;
end;
TrainedLevel := GetSkillLevel(TrainedSkill);
if (TrainedLevel = -1) then //if fails to get level it gives -1
begin
done := False;
fails := fails+1;
end;
StartXPtillNext := XPTillNextLevel(TrainedSkill);
if (StartXPtillNext = -1) then //if fails to read xp it gives -1
begin
done := False;
fails := fails+1;
end;
until done

XPtillNext := StartXPtillNext;
LastXP := Round(XP); //we store the 'xp gained till now' (round is needed cause extended and integer)
MakeScreenShot(ScreenShotsPath + 'levelups\'); //this will make a screenshot of our levelup:)
Wait(RandomRange(3000,5000));
end;

ClearDebug;
Disguise('ChaosMossKiller [' + FloatToStr(XPHour) + ']');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' ChaosMossKiller ' + Version);
WriteLn(' * Time Running: ' + MsToTime(Round(TimeRun),Time_Formal));
WriteLn(' * ' + LevelString + ' XP Gained: ' + FloatToStr(XP) + ' (' + FloatToStr(XPHour) + ')');
Writeln(' * ' + LevelString + ' Level: ' + IntToStr(TrainedLevel) + ', XP till next: ' + FloatToStr(XPtillNext));
Writeln(' * B2P: ' + IntToStr(B2PUsed) + ' Food: ' + IntToStr(FoodUsed))
if PickUpCharms then
Writeln(' * Charms: ' + IntToStr(GoldCharms) + '/' + IntToStr(GreenCharms) + '/' + IntToStr(BlueCharms) + '/' + IntToStr(CrimsonCharms))
else
Writeln(' * Not picking up charms.');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;



procedure Antiban; //basic antibans
begin
case Random(2400) of
1..2:
begin
StatusWithPaint('Checking trained level.');
TrainedLevel := GetSkillLevel(TrainedSkill);
HoverSkill(TrainedSkill,false);
Wait(RandomRange(1000,3000));
GameTab(tab_Inv);
StatusWithPaint('Back to fighting.');
end;
3..4:
begin
StatusWithPaint('Checking hp level.');
TrainedLevel := GetSkillLevel(TrainedSkill);
HoverSkill(SKILL_HITPOINTS,false);
Wait(RandomRange(1000,3000));
GameTab(tab_Inv);
StatusWithPaint('Back to fighting.');
end;
5..6:
begin
StatusWithPaint('Checking random level.');
TrainedLevel := GetSkillLevel(TrainedSkill);
HoverSkill('random',false);
Wait(RandomRange(1000,3000));
GameTab(tab_Inv);
StatusWithPaint('Back to fighting.');
end;
7..8: PickUpMouse;
9..14: CompassMovement(-180,180,false);
180..460: SleepAndMoveMouse(RandomRange(300,1200));
end;
end;



function BreakB2P : Boolean;
var
TabDTM : Integer;
fails : Integer;
done : Boolean;
begin
TabDTM := DTMFromString('78DA633CC4C4C070899101194CEEED65F802148289326E03AA398BAA868181894184014DCD0D026AF602D53C20A0E614116A2E01D55C2742CD79FC6A00BDB80E80');
if not (GetCurrentTab = tab_Inv) then
GameTab(tab_Inv);
Wait(RandomRange(200,400));
fails := 0;
done := False;
repeat
if FindDTM(TabDTM,X,Y,MIX1,MIY1,MIX2,MIY2) then
begin
Mouse(X,Y,5,5,mouse_left); //clickig on B2P tab
Inc(B2PUsed);
Wait(RandomRange(6000,8000)); //it takes long to break it
Result := True;
done := True;
end else
begin
if not (GetCurrentTab = tab_Inv) then //sometimes it fails to switch tabs for the first time
GameTab(tab_Inv);
fails := fails+1;
end;
if (fails = 5) then //trying to find DTM 5 times max
begin
Result := False;
done := True;
end;
until done
FreeDTM(TabDTM);
end;



function EatFood(var foodDTMString : String): boolean;
var
FoodDTM, EatTime, CurrentHP, fails : Integer;
done : Boolean;
colorstring : String; //this is for a return value, not using it
begin
FoodDTM := DTMFromString(foodDTMString);
if not (GetCurrentTab = tab_Inv) then
GameTab(tab_Inv);
Wait(RandomRange(200,400));

fails := 0;
done := False;
repeat
if FindDTM(FoodDTM,X,Y,MIX1,MIY1,MIX2,MIY2) then
begin
CurrentHP := GetMMLevels('hp', colorstring);
MarkTime(eatTime);
repeat
MultiMouse(X,Y,80,2,true);
Wait(RandomRange(400,800));
if ( GetMMLevels('hp', colorstring) > (CurrentHP + 30) ) then //checking if HP is increased
begin
Inc(FoodUsed);
done := True;
Result := True;
end;
if (TimeFromMark(eatTime) > 10000) then
begin
Result := False;
done := True;
end;
until done
end
else
begin
if not (GetCurrentTab = tab_Inv) then //sometimes it fails to switch tabs for the first time
GameTab(tab_Inv);
fails := fails+1;
Wait(500);
end;

if (fails = 5) then //trying to find DTM max 5 times
begin
Result := False;
done := True;
end;
until done
FreeDTM(FoodDTM);
end;



function ChooseOptionCharms(What : String) : Boolean; //modified SRL function, this will loot charms if possible
var
B: TBox;
i, H, x: Integer;
T: TPoint;
Options: Array of TOptions;
begin
Result := False;
Options := GetChooseOptions('action');
if (Length(Options) < 1) then
Exit;
H := High(Options);

for i := 0 to H do
begin
if PickUpCharms then //if charms looting is enabled
begin
if Pos('ake Gold', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Gold charm!');
Inc(GoldCharms);
Report;
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;

if Pos('ake Green', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Green charm!');
Inc(GreenCharms);
Report;
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;

if Pos('ake Blue', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Blue charm!');
Inc(BlueCharms);
Report;
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;

if Pos('ake Crims', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Crimson charm!');
Report;
Inc(CrimsonCharms);
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;
end;

if Pos(What, Options[i].Str) > 0 Then //this will check for 'attack' or 'take bones' (nowhere else using ChooseOptionCharms)
begin
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;
end;

B := Options[0].BigBox; //to mmouse away
x := Max(B.X1 - 52, 0);
if x = 0 then
x := B.X2+10;
MMouse(x, Max(B.Y1 - 50, 0), 40, B.Y2-B.Y1);
Wait(200 + Random(100));
end;



function FindMoss(ClickOnIt: Boolean) : Boolean; //returns true only if clicked on a Moss giant
var
RedX, RedY, ExcX, ExcY, i, MinPoints, DetectTime, UptextTime, RedHpBarDTMTime, RedHpBarDTM : Integer;
TPA, MossTPA : TPointArray;
ATPA : Array of TPointArray;
MossColors, Tolerances : Array of Integer;
ExcludeNearRedHpBar : Boolean;
begin
Result := False;
MarkTime(DetectTime);
//6257521 (8) portal színe, tökéletes
//2173227 (5) nincs már sötét fal (eddig 7 jó volt)
//2372406 (8) nincs már (12 volt) nagyon kicsi barna fából
//2309694 (7) nincs nagyon nagyon kicsi barna fából
//3303025 (14) sárgásbarna, tökéletes
//4482405 (13)
MossColors := [6257521, 2173227, 2372406, 2309694, 3303025, 4482405];
Tolerances := [8, 5, 8, 7, 15, 13];
MinPoints := 200;

for i:=0 to High(MossColors) do
begin
FindColorsTolerance(MossTPA,MossColors[i],MSX1,MSY1,MSX2,MSY2,Tolerances[i]);
AppendTPA(TPA,MossTPA);
end;

ExcludeNearRedHpBar := False;
RedHpBarDTM := DTMFromString('mWAAAAHicY2FgYNgCxOeh+AIQRwFxOBDHQtk7GTgYrNmZ4FgEKIaMGdEwCAAAoEoGcA==');
if WaitFindDTMex(RedHpBarDTM,X,Y,MSX1,MSY1,MSX2,MSY2,10,100) then //if found redbar then we will exclude points around it
begin
ExcludeNearRedHpBar := True;
RedX := X;
RedY := Y+50;
ExcX := 35;
ExcY := 60;
end;
FreeDTM(RedHpBarDTM);

if (High(TPA)> 0) then
begin

if ExcludeNearRedHpBar then //excluding near RedHpBar
begin
SortTPAFrom(TPA,Point(redX,redY));
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - RedX) < ExcX) and (Abs(TPA[i].y - RedY) < ExcY) then
Break;
SetArrayLength(TPA,i);
end;

SortTPAFrom(TPA,Point(MSCX,MSCY)); //excluding points near middle
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - MSCX) < 25) and (Abs(TPA[i].y - MSCY) < 25) then
Break;
SetArrayLength(TPA,i);

ATPA := SplitTPA(TPA,10); //splitting TPAs

SortATPASize(ATPA,True); //excluding TPAs with less than MinPoints points
for i:=0 to High(ATPA) do
begin
if High(ATPA[i]) < MinPoints then
Break;
end;
if i = 0 then Inc(i);
SetArrayLength(ATPA,i);

SortATPAFromFirstPoint(ATPA,Point(MSCX,MSCY)); //making the closest TPA the first in the array


if DebugWindow then //DebugWindow
OpenDebugWindow(TPA,ATPA,true,IntToBox(RedX-ExcX,RedY-ExcY,RedX+ExcX,RedY+ExcY));

if High(ATPA[0]) < MinPoints then //to avoid errors
Exit;


if ClickOnIt then
begin
if MiddleTPAEx(ATPA[0],X,Y) then //getting the middle point of the TPA, moving mouse there then looking for uptext
begin
MMouse(X,Y,0,0);
MarkTime(UptextTime);
if WaitUpText('ttack',200) then
begin
if DebugLines then //DebugLines
Writeln('Found Moss in ' + IntToStr(TimeFromMark(DetectTime)) + ' ms. Uptext was ' + IntToStr(TimeFromMark(UptextTime)) + ' ms.');
case Random(6) of //random left or rigth click (5:1)
0..4:
begin
ClickMouse2(mouse_left);
if DidRedClick then
Result := True; //returns true = clicked on moss
Exit;
end;
5:
begin
ClickMouse2(mouse_right);
if ChooseOption('ttack') then
Result := True; //returns true = clicked on moss
Exit;
end;
end;
end else
if DebugLines then //DebugLines
Writeln('Found Moss in ' + IntToStr(TimeFromMark(DetectTime)) + ' ms, but failed to find UpText.');
end;
end; //PaintDebug: clearing the drawings on SMART
end;
end;



function FindBones(X1,X2,X3,X4: Integer) : Boolean; //returns true if uptext is 'Take'
var
TPA : TPointArray;
ATPA : Array of TPointArray;
i : Integer;
MinPoints, xmid, ymid : Integer;
begin
MinPoints := 50;
FindColorsTolerance(TPA,11975103,X1,X2,X3,X4,25);

SortTPAFrom(TPA,Point(MSCX,MSCY)); //excluding points near middle
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - MSCX) < 20) and (Abs(TPA[i].y - MSCY) < 25) then
Break;
SetArrayLength(TPA,i);

if (High(TPA)> 0) then
begin

ATPA := SplitTPA(TPA,10); //splitting the TPA

SortATPASize(ATPA,True); //excluding TPAs with less than MinPoints points
for i:=0 to High(ATPA) do
begin
if High(ATPA[i]) < MinPoints then
Break;
end;
if i = 0 then Inc(i);
SetArrayLength(ATPA,i);

if DebugWindow then //DebugWindow
OpenDebugWindow(TPA,ATPA,false,IntToBox(0,0,0,0));

if (High(ATPA[0]) < MinPoints) then //to avoid errors
Exit;

if MiddleTPAEx(ATPA[0],xmid,ymid) then //getting the middle point of the TPA, moving mouse there then looking for uptext
begin
MMouse(xmid,ymid,0,0);
Wait(100);
if IsUpTextEx('ake') then
begin
Result := True; //returning true
GetMousePos(X,Y);
Exit;
end;
end;
end;
Result := False;

end;



function FindCharm(Which: String; Colors, Tolerances: TIntegerArray; MinPoints: Integer) : Boolean; //returns true if uptext is 'Take'
var
TPA, CharmTPA : TPointArray;
ATPA : Array of TPointArray;
i : Integer;
xmid, ymid : Integer;
begin
for i:=0 to High(Colors) do
begin
FindColorsTolerance(CharmTPA,Colors[i],MSX1,MSY1,MSX2,MSY2,Tolerances[i]);
if DebugLines then //DebugLines
if (High(CharmTPA) > 0) then
Writeln('[Charms] Found ' + IntToStr(High(CharmTPA)) + ' pixels for Color: ' +IntToStr(Colors[i]) + '. Tolerance is: ' + IntToStr(Tolerances[i]));
AppendTPA(TPA,CharmTPA);
end;

SortTPAFrom(TPA,Point(MSCX,MSCY)); //excluding poinst near middle
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - MSCX) < 30) and (Abs(TPA[i].y - MSCY) < 30) then
Break;
SetArrayLength(TPA,i);


if (High(TPA)> 0) then
begin
ATPA := SplitTPA(TPA,15); //splitting the TPA

SortATPASize(ATPA,True);

if High(ATPA[0]) < MinPoints then //getting only the biggest TPA (it everything is fine, this function wont find any extra pixels)
Exit;

if DebugWindow then //DebugWindow
OpenDebugWindow(TPA,ATPA,false,IntToBox(0,0,0,0));

if MiddleTPAEx(ATPA[0],xmid,ymid) then //getting the middle of the TPA, moving mouse there then looking for uptext
begin
MMouse(xmid,ymid,0,0);
Wait(100);
if PaintDebug then
SMART_ClearCanvasArea(IntToBox(MSX1,MSY1,MSX2,MSY2));
if IsUpTextEx('ake') then
begin
Result := True; //returning true
GetMousePos(X,Y);
Exit;
end;
end;
end;
Result := False;
end;



procedure FindAllCharms; //this will call the FindCharm() for all the charms with the given parameters
var
Colors, Tolerances : Array of Integer;
begin
if PickUpCharms then //if charms enabled
begin
StatusWithPaint('Looking for charms.');

Colors := [5804446,5935011,5344659,5735582,5472916];
Tolerances := [10,10,10,10,10];
if FindCharm('Gold',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Gold') then
begin
StatusWithPaint('Picking up gold charm.');
Inc(GoldCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

Colors := [5010263,6982265,5471587,5730659];
Tolerances := [10,5,5,4];
if FindCharm('Green',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Green') then
begin
StatusWithPaint('Picking up green charm.');
Inc(GreenCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

Colors := [6183977,8552249];
Tolerances := [10,10];
if FindCharm('Blue',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Blue') then
begin
StatusWithPaint('Picking up blue charm.');
Inc(BlueCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

Colors := [3295859,2567297,3290481];
Tolerances := [8,8,10];
if FindCharm('Crimson',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Crims') then
begin
StatusWithPaint('Picking up crimson charm.');
Inc(CrimsonCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

end;
end;



function WaitInFight(Timeout: Integer) : Boolean; //waits until Timeout or till we get into a fight (will return true in this case)
var
X,Y,XP1,XP2,ShieldDTM,Time : Integer;
begin
XP1 := GetXPBar(XPCounter);
MarkTime(Time);
ShieldDTM := DTMFromString('mQwAAAHicY2ZgYGBlYWAQAmIOIJZmZGCQAmJ1IGax9mT4+/cvA9eCJwxcQHUwzIiEgQAAxXEFvA==');
repeat
XP2 := GetXPBar(XPCounter);
if (XP2 > XP1) then
begin
if DebugLines then
Writeln('XP is increased, we are fighting.');
if PaintDebug then
begin
SMART_DrawBoxEx(false,IntToBox(524,54,543,73),ClYellow);
Wait(100);
SMART_ClearCanvasArea(IntToBox(520,50,547,77));
end;
Result := True;
FreeDTM(ShieldDTM);
Exit;
end;
if (TimeFromMark(Time) > 3000) and FindDTM(ShieldDTM,X,Y,MSX1,MSY1,MSX2,MSY2) then //if xp is increased or shield dtm found (3000 seconds is for not the detect the blue shield of the previous fight)
begin
if DebugLines then
Writeln('Blue shield found, we are fighting.');
Result := True;
FreeDTM(ShieldDTM);
Exit;
end;
until (TimeFromMark(Time) > Timeout)
FreeDTM(ShieldDTM);
Result := False;
end;



function FindRedBar : Boolean;
var
X,Y,RedBarDTM : Integer;
begin
Result := False;
RedBarDTM := DTMFromString('mlwAAAHicY2dgYDBnZmCQBWIZKB0ExQpA3AiUr2OA0C1QDOPvZOBgsGZnwsBdDIwM+AAjHgwFAAvPB5w=');
if FindDTM(RedBarDTM,X,Y,MSX1,MSY1,MSX2,MSY2) then
begin
if DebugLines then
Writeln('Found redbar, we killed it.');
if PaintDebug then
begin
SMART_DrawBoxEx(false,IntToBox(X-30,Y-10,X+30,Y+10),ClYellow); //drawing box around the redbar
Wait(100);
SMART_ClearCanvasArea(IntToBox(MSX1,MSY1,MSX2,MSY2));
end;
Result := True;
end;
FreeDTM(RedBarDTM);
end;



procedure HopWorld;
var
FailTime : Integer;
begin
StatusWithPaint('Hopping.');
Inc(WorldHops);

MarkTime(FailTime);
repeat
ExitToLobby;
if TimeFromMark(FailTime) > 30000 then //sometimes RS crashes when going to lobby (black screen)
EndScript('Failed to exit to lobby when hopping.');
until LobbyScreen;

OpenWorldScreen;
SelectWorld(RandomWorld(true,false)); //member world, not pvp

MarkTime(FailTime);
repeat
LoginPlayer;
if TimeFromMark(FailTime) > 60000 then //sometimes RS crashes at login (black screen)
EndScript('Failed to login after hopping.');
until LoggedIn

Wait(RandomRange(500,6000));
ToggleXPBar(true);
SetAngle(SRL_ANGLE_HIGH);
end;



procedure WalkToCenter; //simple SPS walking to center (will improve in the future)
begin
StatusWithPaint('Walking to center.');
SPS_WalkToPos(Point(335, 374)); //no need randomness, because its not accurate
end;



procedure SpecialAttack;
var
X,Y,DTM100,DTM75,DTM60,DTM55,DTM50,DTM25,i,FailTime : Integer;
begin
if UseSpecAttacks and ((TimeFromMark(SpecTime) > SpecWait) or (SpecNumber > 0)) then //will enter if specials are turned on AND (if its time to check for special OR we have remaining specials to do)
begin
StatusWithPaint('Checking special attack.');
DTM100 := DTMFromString('mWAAAAHicY2FgYHBgYmCwB+IjULyQkYFhHRAvAOI1QFyzIo9BSl+EwT/XkiGi2oGBC6gHGTOiYRAAAPnmCNY='); //DTMS for 100%,75% ... special bars
DTM75 := DTMFromString('mQwAAAHicY2ZgYLBnguAFIMzIwLAWiJcBsXOyIYOmpwJDep83AxdQHQwzImEgAAD6tQXo');
DTM60 := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+IuIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAooAdH');
DTM55 := DTMFromString('mQwAAAHicY2ZgYGhmgeDjQCzNxMCgCcSyQOycbMggpS/CMOFIPQMXUB0MMyJhIAAA5cgFbA==');
DTM50 := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+JaIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAl1Qc6');
DTM25 := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+IoIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAeUAcX');
SpecNumber := 0;
MarkTime(FailTime);
repeat
if (TimeFromMark(FailTime) > 5000) then Exit; //if failed to switch tabs, then it exits
GameTab(tab_Combat);
until (GetCurrentTab = tab_Combat)
SpecNumber := 0; //no matter if we have remaining specials to do, we will set it to 0 and determine it again
case SpecUsage of //determining how many specials we can do
100:
if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
60:
if FindDTM(DTM60,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
55:
if FindDTM(DTM55,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
50:
begin
if FindDTM(DTM50,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 2;
end;
25:
begin
if FindDTM(DTM25,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
if FindDTM(DTM50,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 2;
if FindDTM(DTM75,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 3;
if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 4;
end;
end;
MarkTime(SpecTime);
SpecWait := RandomRange(15000,60000); //next spec check in 15-60 seconds
if SpecNumber > 0 then //if we can spec
begin
StatusWithPaint('Using special attack.');
MouseBox(574,416,706,428,mouse_left);
Dec(SpecNumber);
end else //it cant do spec
begin
StatusWithPaint('Not enough special.');
Wait(RandomRange(500,4000));
StatusWithPaint('Back to fighting.');
MarkTime(FailTime);
repeat
if (TimeFromMark(FailTime) > 5000) then Exit;
GameTab(tab_Inv);
until (GetCurrentTab = tab_Inv)
end;
FreeDTM(DTM100);
FreeDTM(DTM75);
FreeDTM(DTM60);
FreeDTM(DTM55);
FreeDTM(DTM50);
FreeDTM(DTM25);
end;
end;



procedure LoginCheck;
begin
if not LoggedIn then
begin
StatusWithPaint('Logging in.');
if not LoginPlayer then
EndScript('We got logged out somehow and cant log in.');
end;
end;



procedure HpCheck;
var
colorstring, lobs, peaches : String;
FailTime, Amount : Integer;
done : Boolean;
begin
if (GetMMLevels('hp', colorstring) < EatAt) then
begin
MarkTime(FailTime);
repeat
if not b2p then //if not using B2P yet then we eat a simple food (lobster)
begin
StatusWithPaint('Eating lobster.');
Amount := 120; //healing amount for lobster
lobs := 'mggAAAHicY2NgYPjPxMDAzczAwMcMYX8E4p9ALMbIwMAKxNxArMAI4fMC8f4EGaAuJgwsAiSxYUYcGAIAcgoGSA==';
if not EatFood(lobs) then
begin //if out of food
if not BonesToPeaches then //if not using B2P, then we log out
EndScript('Out of food.')
else
b2p := True; //lets start using B2P
end;
end;
if b2p then
begin
StatusWithPaint('Eating peaches.');
Amount := 80; //healing amount for peach
peaches := '78DA632C60626070626440069B3B52194480344C94310FA8C60C550D030313AA9A32A01A0B026A6A806A1C08A8A906AA7127A006E4663F026A52883007A4C69E809A4CC2FE0200D76708C1'
if not EatFood(peaches) then //if out of peaches
begin
StatusWithPaint('Breaking B2P.');
if not BreakB2P then //if out of tablets
EndScript('Out of B2P tablets.');
if not EatFood(peaches) then //if broke tablet but cant eat peaches
EndScript('Failed to eat peaches after broking B2P.');
end;
end;
if (GetMMLevels('hp', colorstring) > (HpLevel * 10 - Amount)) or (TimeFromMark(FailTime) > 30000) then //if we no need to eat more (current hp > (maxhp - healamout)) (30 seconds timeout for fail safe)
done := True;
until done
end;
end;



procedure NoobCheck;
begin
if Length(GetMinimapDotsin('player',592,49,662,120)) > 0 then
begin
StatusWithPaint('Found a noob, waiting.');
MakeScreenShot('C:\Simba\Screenshots\ChaosMossKiller\noobs\');
Wait(RandomRange(5000,10000));
HopWorld;
end;
end;



function BonesCheck : Boolean;
var
LookedForBones : Integer;
begin
Result := False;
if BonesToPeaches then
begin //if using B2P then we need to collect bones
if not InvFull then
begin
LookedForBones := 0;
repeat
if FindBones(MSX1,MSY1,MSX2,MSY2) then
begin
StatusWithPaint('Picking up bones.');
Mouse(X,Y,0,0,mouse_right);
ChooseOptionCharms('ake Big');
Wait(1000);
repeat until not IsMoving
Result := True;
end;
Inc(LookedForBones);
until (InvFull) or (LookedForBones = 5) //looking for bones max 5 times (failsafe)
end;
end;
end;



procedure RandomsCheck;
begin
if FindNormalRandoms then
EndScript('Random event found!');
end;



procedure AmmoCheck; //function for Ranging
var
i : Integer;
done : Boolean;
begin
if LevelString = 'RNG' then
if FindChatBoxText('You have no ammo',8,ClBlack) then //ammo check
begin
StatusWithPaint('Out of ammo.');
Wait(1000);
if srl_inFight then
begin
StatusWithPaint('Still fighting, removing weapon.');
repeat until GameTab(tab_Inv)
if InvFull then
begin
i := 5;
done := False;
repeat
MMouseItem(i);
if IsUpTextMultiCustom(['Bury','ury','Eat','at']) then
begin
ClickMouse2(mouse_right);
if ChooseOptionMulti(['Drop','rop']) then
done := True;
end;
Inc(i);
until done
end;
repeat until GameTab(tab_Equip);
MouseBox(573,294,594,311,mouse_left);
StatusWithPaint('Removed weapon.');
EndScript('Out of ammo.');
end;

end;
end;



procedure SetupScript;
begin
ClearDebug;
Disguise('ChaosMossKiller');
Status('Starting script.');
Smart_Server := 10;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
ActivateClient;
DeclarePlayers;
SetupSRLStats(680, SRLStats_User, SRLStats_Password);
SPS_Setup(RUNESCAPE_OTHER,['chaos_tunnels']);
if PaintDebug then
SMART_ClearCanvas;
Status('Logging in.');
LoginPlayer;
end;



procedure Startup;
var
fails, FailTime : Integer;
done : Boolean;
begin
if srl_inFight then
begin
StatusWithPaint('Waiting till fight is over.');
repeat until not srl_InFight
end;

fails := 0;
done := True;
MarkTime(FailTime);
repeat
ToggleXPBar(True);
TrainedLevel := GetSkillLevel(TrainedSkill);
if (TrainedLevel = -1) then
begin
done := False;
fails := fails+1;
end;
HpLevel := GetSkillLevel('Hitpoints');
if (HpLevel = -1) then
begin
done := False;
fails := fails+1;
end;
StartXPtillNext := XPTillNextLevel(TrainedSkill);
if (StartXPtillNext = -1) then
begin
done := False;
fails := fails+1;
end;
StartXP := GetXPBar(XPCounter);
if (StartXP = -1) then
begin
done := False;
fails := fails+1;
end;
if (fails = 3) or (TimeFromMark(FailTime) > 30000) then
EndScript('Startup fail. Cant get level/read xps.');
until done

case TrainedSkill of
'Attack' : LevelString := 'ATK';
'Strength' : LevelString := 'STR';
'Defence' : LevelString := 'DEF';
'Range' : LevelString := 'RNG';
end;

case DebugLines of
true: doreport := False;
false: doreport := True;
end;

b2p := False;
LastXP := 0;
WorldHops := 0;
B2PUsed := 0;
FoodUsed := 0;
GoldCharms := 0;
GreenCharms := 0;
BlueCharms := 0;
CrimsonCharms := 0;

if UseSpecAttacks then
begin
SpecNumber := 0;
SpecWait := RandomRange(15000,45000);
MarkTime(SpecTime);
end;

ClearDebug;
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' ChaosMossKiller ' + Version);
WriteLn(' - HP level : ' + IntToStr(HpLevel));
Writeln(' - ' + LevelString + ' level : ' + IntToStr(TrainedLevel));
Writeln(' - XP till next : ' + IntToStr(StartXPtillNext));
Writeln(' - XP Bar : ' + IntToStr(StartXP));
WriteLn(' - Starting script...');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');

MarkTime(StartTime);
SetAngle(SRL_ANGLE_HIGH);
end;



procedure Main;
var
DetectTime, KillTime : Integer;
done : Boolean;
begin
repeat

StatusWithPaint('Looking for Mosses.');
done := False;
MarkTime(DetectTime);
repeat
if (TimeFromMark(DetectTime) > 180000) then //180 seconds failsafe
EndScript('Cant find Mosses.');
if FindMoss(true) then //if clicked on moss
begin
if WaitInFight(4000) then //checking if we are fighting
done:=True
end else
begin //if failed to attack moss
StatusWithPaint(IntToStr(TimeFromMark(DetectTime))+'ms');
case Random(20) of
0: CompassMovement(-120,120,false); //rotating camera for better view
end;
LoginCheck;
RandomsCheck;
if (TimeFromMark(DetectTime) > 10000) then //walking back to middle
WalkToCenter;
end;
until done //we are fighting now


StatusWithPaint('Fighting.');
MarkTime(KillTime);
repeat
Antiban;
AmmoCheck;
if (TimeFromMark(KillTime) < 5000) then //we dont want to waste special attack, so we only using it in the first 5 seconds
SpecialAttack;
if ((TimeFromMark(KillTime) > 5000) and (FindRedBar)) then //we are looking for redbar after 5 seconds of fighting
Break; //end of fight
Wait(500);
until ((TimeFromMark(KillTime) > 10000) and (not srl_inFight)) //failsafe is: 10 seconds and no hpbar above the player -> end of fight


StatusWithPaint('Killed Moss. Took '+MsToTime(TimeFromMark(KillTime),Time_Formal)+'.');
Report;
stats_Commit; //committing stats (no variebles yet, only time)
BonesCheck; //this will look for bones if needed and pickst them up
FindAllCharms; //this will look for charms and picks them up
LoginCheck;
NoobCheck; //this will look for other players around
HpCheck; //this will check hp and eat (use b2p) if needed

until False
end;



begin

SetupScript;
Startup;
Main;

end.

But again, I'm unable to get it working.

If you'd be able to help, I'd be very appreciative!

runing low

2012-07-28 05:56:14

From: [J]ustin
Have you filled out the username and password section in DeclarePlayers?


of course i did

I'm using aligndude's astral rcer

it gets to the login screen then it doesn't even try to type in user pass

blowsmoke1

2012-07-28 05:59:25

program Ghouler;
{$DEFINE SMART}
{$i SRL/srl.simba}
{$i SRL/SRL/skill/fighting.simba}
{$i sps/sps.simba}
{$IFDEF SIMBAMAJOR980}
{$I SRL/SRL/Misc/PaintSmart.Simba}
{$ELSE}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}
Const
//Change this to no if you dont want paint and are to lazy to disable debug.
Paint = 'No';

//True for it to pick up charms
//False for it to not pick up charms.
Charmer = True;

//Yes to pickup Effigies, no to not pick them up
//This still may be buggy.
Effigy = 'No';

//True to pickup Champion Scroll, False to not pick them up
//This still may be buggy.
ChampionScroll = False;

var
foodnumber,P,T,Z,Exp,Charms,XPH,BMP,Kills,MSpeed,RandAmount:Integer;
DCols: Array of Integer;
Drops: Array of String;


procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

With Players[0] Do
Begin
Name := ''; //Player username.
Pass := ''; //Player password.
Nick := ''; //Player nickname - 3-4 letters of Player username.
Active := True;
End;

End;

//\
// \\
//DO \\
// Not \\
// Change\\
// Anymore \\
//-----------\\
//_____________\\
// Made by Laake \\
//_________________\\
//###################\\
//#####################\\
//#######################\\
//#########################\\
//## Dont Change anymore ##\\
//#############################\\
//###############################\\
//_________________________________\\


Procedure RandomThing;
Begin
MakeCompass(RandomRange(0,360));
end;

Function UInFight: Boolean;
begin
Writeln('Checking for fight');
Wait(100);
Writeln('Pixel shift of '+IntToStr(averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360)));
if (averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360) < 150) then RandomThing;
if (averagePixelShift(IntToBox(235, 101, 290, 184), 120, 360) > 400) then
Begin
Result := True;
Exit;
end else
if not InFight then
Result :=False;
Exit;
end;

procedure SetupChar;

begin

SetupSRL();
Loginplayer();
SetAngle(0);
ClickNorth(0);
end;

Procedure ToBank;
Var
myPath: TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE, ['13_6','14_6']);
myPath := [Point(5502, 2599), Point(5513, 2597), Point(5523, 2593), Point(5532, 2592), Point(5542, 2591), Point(5550, 2593), Point(5558, 2597), Point(5567, 2600), Point(5576, 2605), Point(5586, 2612), Point(5594, 2622), Point(5603, 2632), Point(5610, 2642), Point(5617, 2652), Point(5626, 2659), Point(5634, 2671), Point(5641, 2684), Point(5647, 2695), Point(5656, 2698), Point(5666, 2700), Point(5672, 2705), Point(5679, 2714), Point(5684, 2730), Point(5695, 2740), Point(5711, 2740), Point(5726, 2740), Point(5739, 2735), Point(5751, 2732), Point(5762, 2730), Point(5772, 2725), Point(5783, 2722), Point(5797, 2717), Point(5811, 2714), Point(5824, 2714), Point(5835, 2713), Point(5846, 2715), Point(5860, 2722), Point(5874, 2727)];
SPS_WalkPath(myPath);
end;

Procedure ToGhouls;
Var
myPath: TPointArray;
begin
SPS_Setup(RUNESCAPE_SURFACE,['14_6','13_6']);
myPath := [Point(5878, 2728), Point(5870, 2728), Point(5857, 2722), Point(5849, 2720), Point(5840, 2719), Point(5827, 2717), Point(5813, 2716), Point(5798, 2716), Point(5784, 2722), Point(5773, 2732), Point(5757, 2739), Point(5741, 2742), Point(5727, 2745), Point(5712, 2743), Point(5699, 2737), Point(5685, 2728), Point(5678, 2712), Point(5666, 2700), Point(5653, 2689), Point(5642, 2679), Point(5633, 2672), Point(5628, 2666), Point(5618, 2656), Point(5612, 2645), Point(5607, 2631), Point(5595, 2619), Point(5582, 2610), Point(5571, 2604), Point(5559, 2596), Point(5548, 2596), Point(5536, 2597), Point(5524, 2599), Point(5512, 2599)];
SPS_WalkPath(myPath);
end;

procedure MSI_RandomFKey;
var
i, randInt, randKey, currTab: Integer;
keys: array[0..4] of Word;
begin
currTab := GetCurrentTab();

keys[0] := VK_F1;
keys[1] := VK_F2;
keys[2] := VK_F3;
keys[3] := VK_F4;
keys[4] := VK_F5;

randInt := Random(6);

case randInt of
0..4:
begin
KeyDown(keys[randInt]);
wait(35+random(85));
KeyUp(keys[randInt]);
end;

else
for i := 1 to 3 do
begin
randKey := Random(5);
KeyDown(keys[randKey]);
wait(35+random(85));
KeyUp(keys[randKey]);
end;
end;
wait(75+random(100));
GameTab(currTab);
end;
Function Eat(What: String): Boolean;
var
I: Integer;
begin
Result := False;
If Not LoggedIn then Exit;
if (foodnumber=1) then Exit;
if (HPPercent < 70) then
If InvEmpty then Logout
else
for i := 1 to 28 do
begin
if ExistsItem(i) then
InvMouse(I, 3);
if IsUpText(What) then
begin
ClickMouse2(True);
Wait(RandomRange(350, 525));
Result := True;
Exit;
end else
end;
end;


procedure GAntiBan;
begin
writeln('Choosing random antiban');
case random(11) of
0 : begin
GameTab(27);
Wait(randomrange(400,800));
end;
1 : begin
RandomMovement;
end;
2 : begin
MSI_RandomFKey;
end;
3 : begin
RandomRClick;
end;
4 : begin
end;
5 : begin
HoverSkill(skill_strength,false);
end;
6 : begin
HoverSkill(skill_hitpoints,false);
Wait(randomrange(300,600));
end;
7 : begin
GameTab(23);
end;
8 : begin
PickUpMouse;
end;
9 : begin
Wait(randomrange(1000,2000));
end;
10 : begin
HoverSkill('attack',false);
end;
end;
Wait(randomrange(500,1000));
end;

Procedure LoadBMP;
begin
BMP := BitmapFromString(517, 143, 'meJzsvWuQHMeZLYYIzE4gZqJ6' +
'u9VdrC50Nau7Wf1A9/Swe16YAUBQpN6gpAAJgg/wJUpae1fSiqIok' +
'YIoiBBISnf/3PD1vfYKAEE8yNX94WsbjrCD3iUBENAywhF0WA7+ur' +
'RNYEYRy/XduAqHZUd4/7VP5en8kNOPmp7BgCJ3K6OnoqYqK59fnvN' +
'l5peZqVTqU5/6VEpf0+k0rn+sXDKZTCmHGz4RD/SfyWTSyskT3H9K' +
'Od7gCj/8Sp5LIPJQ/CeVs5VLa4d7Bp7NZhnpLbfcwpD5FW54hc+Mc' +
'gxBkpfRjt4QGt4iEMdxcHVdF1cGy4d8gitixA2uck/HwBkLn+BffC' +
'jxblcOnzja4Tmu8kQCySrHJ/TAiJh4JJUh86F8aBYOUyJvxTEiCYQ' +
'fsuikACVSZlPiZaQSHW/kITzAM0NjAqQAJViKRC6Xc5WTUmLBonCY' +
'DNzwK0bBh8McK9EMiilhMqQkET5D4yv8i2SwOuBwg38ldz0l1lN6i' +
'MXzPNa+1J0EKxXHf+EZV6SECUBEvBHBM0uVZSLFlTFcT5Zxxec9fq' +
'TYWXTmVywK0wNrUJJqSjglkAGatcyKkEKQBouiY8GKoLJA+Lynmhi' +
'INBPzRrxJY+8RY7PtSMVJS2Q588ZsYuKkKCQxlEMRdaaNkUpGpP2K' +
'UMlbfmICHQuWTsBTcExqXJBKypB+CKfi+IkgJO8FtczwxZkAa34ru' +
'C0P8UQSgHgty5I0wy0aLhXTQUwHMR3oEuspvZgOYjqI6SCmg1tiOo' +
'jpIKaDmA5iOojpIKaDmA5iOojpIKaDmA5iOojpIKaDmA7+WdKBcIG' +
'J2Ent6N9MuZkMFh3/lTo1kcp8JQwihSnR8UNJg1SEKUUiQiZZmGUu' +
'VSlVQJEgGJoh8JUpbybay8NbFFhRSAggxDGB7n7AZNvhv/hEohAZp' +
'qOMCWIwWIYM8MGN2TTECaAx+9Ks+EREVzIi4C+Fw4coNCkKJoNfES' +
'JM0GMTkLYvTU9C4xMTFXtwSTIoIYgzuU9y2gPFUlCSMJExafJSwnQ' +
'kICl8li0TwFe4QSELQUjgJq1IbeKaU85MuWRE4jVrkxFJLFKPJu8z' +
'LrztwX8Tr24x6EzAygRVceLZLIpbDMKS2ElYkhKT0ym0wqRStmZEk' +
'sdbDB3JxGeROjNMkVVGKgArAiOq1C0G0ZjtQopUHjLxuM/n80yVyR' +
'2OoW6JXEnWTAk0C0dKUtqR5JRQIDAyEJdMAO/HRhO1TBW3R0k2dWw' +
'GYgK+gJv5lvgmVMWQGZp4Jh0I/guAMyUxHcR0ENNBTAcxHcR0ENNB' +
'TAcxHcR0ENNBTAf9dCBDUoKi5uhTyphTkKglVZ/SQ/EZw5mw3FM4P' +
'YUmXGCOlaX1aLApkI4e1ZR7ES3Tg4lIIv89uHGLMQYubQd1zSFiwR' +
'ORc76iTOKG8bJZSXMzAaQHQwSR2I5k4DprDGLzxsQcaUoCjAJubt9' +
'g6S16BF54R7ImTCFgnjXGe209yCw4YD5hCvshXVquNCVzlqQn5ciU' +
'lB4RWHItQM28b9euB3X5LV+ZKCTRsQAZrHxuBmg6vBIuwI2UQ0/sZ' +
'rX6vs9PpMqYFwqDWXF84iknAQpimzAFz59Sc2FZg7ulFqTuhF/MzN' +
'p9Y+YCoZQEiUgEQApQgE6cIJWEI2k2IVpSxfyyxBidxMhSdbRK4xj' +
'8aCKwaD4iPI7hzGZCnyx8+VdaU047kSKzCYgTZBA5lHCkiEwCNTHB' +
'NfQ0x5igETpIG7Nsdt+MnqDcLX1qkuBejwpNVU0glMqbSQG3aJU4M' +
'8SZ6rqo3D14LmEyqJgORPxiOojpIKaDmA5iOojpwInpIKaDmA5iOo' +
'jpIKYDLeExHTgxHcR0ENNBTAcxHcR0ENNBTAcxHcR0ENNBTAcxHcR' +
'0ENNBTAfapbUZmMkLqdUGpRKRpMQ2TK3w7x//8R9LOk1wFniRhN2y' +
'ejWibRhDijPFz6wjqV8BE7ZEaW7SisVbzyeOYVUoUiHNWQRMCIL/m' +
'jfb9dJIgSaTPsQREySRgg8SjoCG3EvUhClH8wvjknbHNGf0UmW2IB' +
'Tadr0GlkEJnpiFk9WGiz34bIIhg9pugHY+nxcIlTKXpi0Nx9UWgI6' +
'2icWNfIt/cW8WZn85S+AmnOaUNabUlDyU0kCwfIgbQLe8vfXWWxmj' +
'FDLumR7JjtCxoJlkhK9wRZgIStLMtJmVCIdg6Qf3vMGVaRA5dA3zV' +
'8mFsABrx+QpXAlijJFKggn+AsimdJkMZQo2qUpKm4VmIvZ2bcYsX2' +
'03WF7ilZxKSYos4R5llVfOxGoTV6UqeyBX0iCVxXDkiRSa2XboWOl' +
'sbrdoO1JpAnS4R7LpRwRAYjSTsd3gI5NrsnrNvrRNQT+G/ym9YYLQ' +
'q6u3O+BXVADSxkptU5EWrVWQ09aGsqaCLdqFpEE89+C8efMpbcOf0' +
'lam8gnexnQQ00FMB9tjOojpwJD87TEd3Bw6QFlYE/+FNd4Z+Jsc74' +
'xt/fdjW87Lb9uW8+nknyZTaWv8/xj21fjY781P8HMSxz+edGC7rjX' +
'+5rCM4LdtrNOTF3vyfEwH2z9yOkARWBP/5eiCOrHlvJf9TsZB/X4w' +
'uqBmrOMfTzqADFnjf7NeQf3D0oGd9VD4yfGO6/ylZT09CrZkM9+K6' +
'eBG6CCZSlnjfx0hJ/hNQFrCkr9gNpZk8s9se45JRQ77SWF87B//aM' +
'v78hvb8n568q8Z7zA6gEyan+CXHH/PXd07SCS/EJHUsa1/1yPV2dS' +
'xrnRFQjfyOLblXfNDC99m71VfDS2fibGONfbvI0Hmd2YJEGSG0UEy' +
'9cWoWhj7u+g66kn/JGjUvc+a+MuIxJt1il96/LznLYXYFeY6Cj0GS' +
'gVKLJP+dja7cDPoYE3mjUiS6y6S8tBu+0mhX1Ad62+Y/mF00C+omW' +
'3v9fQO1iuoXuZFlsYaIjdIUHO5A9FVtl5BBbTm3e8MpAP0o9asiNF' +
'/Sqp/fyMhTIaB/ONYmOzr6GSNn3Dd+2I6GJ0O8Beh2A+Rww9Vsb8z' +
'tuUNAo7t3BsRiAKcZSVg73VFd+x8Oj2TsD67pmRK/UIyXfvbSgjXA' +
'Kie1mq2mvTEeVSZlejVMSyFBuNb3h/fujy2dZnNYXLL+1nvG469mM' +
'0spDJudETW2IdrpkRn552I3oHqZ0VB98TW5VFyreO6yFz3q1X9/vU' +
'nbyBtSFNEMkaUinz+/k2kg4EYvq4khcyeOxARSL+gphQzRhD0QEF1' +
'Mt8CZGyCoE4+NaKgOrmvQ1BzzuLNENSbTQcsw21b3r9BRmBQ41t/P' +
'9atwYu6s/BiTAfD6EDSE3pO2xHDNaM1gYtdIt72xpr+BXBQR5nUny' +
'USn4uuVlMyw57I5H+zAQmh1me21sS2/2Wthkk0AIa84VjnISEDaYi' +
'ex7eGbTMapfsg9zyClSFoOA6thDKZz0fjMNHAGvvdmlk2c21NXBg9' +
'belJqFVXN0Uq/NyfC5hwTJ6DPDIgnFOj7hwoINSwQIQy2MXIZHMRw' +
'zXrE9SJ/3F0QZ1Q6nEyvW9dgpqa/G8/ekHNKAVjYO/pRgTVTZxnBc' +
'nkCOoxZGcoDJtHB9u2/u7GuaCvcK4zLLUvGTeTsSzcyEwEx75oV2Y' +
'Sn6t3Bb9FbxeW1dZ6rrYJNFH6Fr3rlAC+rSdMhQgcw1pPqMGknoy2' +
'KeJAiowZZrTNoSSmh0Qk8PTqbeWyhvXmQDpIJD67gSZmlDm6ZstsA' +
'uOhwj9SJ5T+SQegymEJ6PlkYuu7G0sk9D1I2vjWD3VQ71njwLr/db' +
'h/ZOrDVdio+pvRvZLRla416QDXaAVvYmztViNaLrMc1s740NpZ7Rl' +
'FfeFGGqYpFd0ZH+tELrd4I3SQynzpDyWopAPbzQ/jx4+PoKbGT+jB' +
'oqEovQFB/QjoIBzc2/LhJtKBNUgjcpInYjoYRgcKitfdLxhe5u91+' +
'+MTbw0UdRNw0MqssfOZzGxE78CUTPQiJ8b+ozUeNWY+SlK7DXzrxQ' +
'jB6wFSqJTpcXTbF6PpYM0xHHNcmvKZS50YRgc9QxM9A9QTW98fJb9' +
'jq1TWsGpy6WNqIrW362FmWQX+/2y6VKAlbpgOFBRvnAtuUFBT4+fz' +
'+V0RvYOPj6AiqaDdNabG1i+o+czJj4AOJraCDv6x5zmpViW499UoY' +
'Rp0+R6HCj3vQEwHPXQQeggNDNaYOB7lJ6qRGr74D2t6G32wyBTLaH' +
'1mJNkIVa8PqXopxPv/RpOiMKkJJUXRwr+m0rW6lYXC6aVPFAoFyF5' +
'BOYof2lo4aD/5y8i8jIQ2JlyMb3k3QiUWn5syeNtX3e+Zo0bFYpG8' +
'wEZHgpAn9ABHzMF1lLnsdSVpvYKKlBdyf56yvzpKzX4cBBXodiPd2' +
'H5B9RUdsEbMmkLlWZPHb7xqrOsktW7Mj/4NnERDFiiEgvlsfcwjGy' +
'OFk/RHcy9yh2MsqZPJBVcf/GfSwS3Grtq2cTKdeHBWLxu8xVjjmdb' +
'H0olFmYTgGuslbX0Gn9hS2vo4yIxxTKHMKYhZYD8d4BWYY1MYgWAS' +
'jST946ugg1TiZyyHZMqOqM3JsTVmTteRVNWCVFL/IdonYUGkiICWc' +
'74dKkXZrCjYZpM0kzo+8femPt/z89IXCtr10wGu0booGuyIHQSzOV' +
'hjv1nTm2aEv98sqZDqprWS7+9eLx2EitlatpE3VVBDGzDnpVKphPR' +
'ksoVPhKC69rdRtqZNwlBB3RYlqE7iAgDktttuG0gHincG9LDW+6NF' +
'0LYty5s7WDQRVuWHZl8PdOnY96GvF9OBSQfKvDPsfSdRbpMDGKFHe' +
'KLBRxQqszkoe7bf9fvRrezdNXsHbGVmmJMIs28co8c0LiKp4nOzdO' +
'BVgYdpi9Jt+k3Tb6B3MGripR57pp63bbuO/5xeRKtRRRdmIQU/iV9' +
'vllSYajY6COuiAyfnU1BVkgZ0zT4CQV2zd/BPXlCH9Q6iGUH0gYmx' +
'DyGx/WNBJvPqAhmaMBn5hDdlRfz7fqmOSIOmyzeSaugvpoOBdDCwf' +
'U2E8nC9iaHMJ7edTiSe6vEzvuVDqQs0h9Db8E7osKnkaDqAGhytcQ' +
'0yk34nmXw5Yqg52oahJ8D+3zAJ3Bb2dqOwaPUMXdgHz1rnN9Y7GJ0' +
'OLN33j244XHk0sfX8sGLpl4oQqSbOJFPfj5YKs8Y5e74xOhgxScnE' +
'uWTmB5srqKPQwQYEdWLLO6nUzz8RgppTU8n9dJB2/Cgp1Uw9MbY8M' +
'fa7bVt/Y21915r4r62J0xOT3xvb8j+ZqZ3Y8r5tn7HGhxq/XQ9t6/' +
'uKR/4Oqn4y+4C1jryEOkk8WNRPB4mJv46Qw9VTkO+CVd30sYzzxeh' +
'FWONbfhMBOKTpYQoA63d8yxs9IaxznDNsvLnUCWU6u8FWZgqegFhS' +
're6JnjuImKHrX6mUHnsfIgeZFNkzZ6/CqeRIOpgcW8cQa9fCMJIOw' +
'vHqLcuTIcusrZ6ZUmFn90WXydiW3xhfnc9sOx8Ee5lxZJMjMMgyng' +
'jU8CGeQPNMWRfWJajl3MvZ/FciRjA+PoLqpk6oxbZDrXk3IKgWF3o' +
'Ui9ElMLqgJsfeR+0EQXDbbbeVlBPtxVdVFTF3IJo5iXIi7OK9m0r+' +
'61Ty2LbJZ1BZiS0X0+n7fP8ggkWAqqMxnA6krxHSwT+Ob/0He9v5h' +
'L1rMuxADSXiPsOAUAJ9fzczIu0O/xL8fcNRS5E1CJ7eXoYg7KnFzs' +
'Rh3sh6c5lido0NNLJ6W4NbjC0Z6barbQYF2LfrrSm36xXonD6Wie+' +
'sPpZUwjQ5xTZc2jij01an/UogJh2stS/EsiG679qJY/gaIURo8sQT' +
'pbVu6uhfiHtrNwfRZNAcIF0oE8v6XkQrU3A6rLH/zlzdAxTN5/+17' +
'+/NOYtr0sEo/VZzySQks1DY008H4bqDyMGiCDoYmIw1x8y1xjg02H' +
'6pcFMvQiqiOzJ9jfGNddGB6hoMRcv+JOUzL5XLd+LDlP2Vj7+gAre' +
'RcSv5zGYJquP8q2x2Ke/uWpMO1iuotqq1fjoAjDKizHgn5z8zNv4i' +
'UyJT4X9kzFOkxztZ55cTyT+hH00H3yY4I8Do6jZ7ByiTsa1/DyUt7' +
'd4/uXUog1iDegfokouMxXSg6WDEAnyX3SvJmqN33N1m3TFi53SUH0' +
'cR+7vb0Wpwn8Z10UmeQCWG1lnhgtBI6F6r8RpLWd8YpXewfv3wjby' +
'aO9hA7wBa8XotWMbDT6IGi9YzgPAuly1vN/YWy6pNnieSdw0bu8hs' +
'e79U+jywGqrmiHQQPRbRnyQ3cb5cLnOsCYHwfjLz+Y+hoGaV2W0IK' +
'ZFWQOsV1FF6BxsQVD9zcmDvQOjgBn/cI2VbuDRmqMlcHx38A1plIv' +
'WvrPH/d81PJC+JLVDADsZ0MDodjBmTO9QQsqlj/XQgY1/b1RZVzGP' +
'ENgg347c6qe/Rrp504IQFOHThUvRsWp9GcTGX6K5njADqdZpzh6kd' +
'RgfoHSQTA5RGGS4e0ayoJ3k3Qgf9UpG3X+ynA1p0A/DRvng1AQT3m' +
'0gH/UkqZV/qpwO5QYy4oSL6BxdUL/Nid+za99PpL2yWoIKjOTCOVj' +
'Csi7QBQf1I6GDoAF3Xj+oQRfsZGKxZPunxsD8e08FG6SBc352wRjI' +
't3oYO+HDL9k3/9c3NvUtDUKGDiH0eoltZnzl3d+4geqR3zT74uugg' +
'erBobJCCuuaPNTsQ9tfUGPulIpkYSSoGmqmMSAcRAykDk5RKnhglS' +
'R8HQfWy3xE6iNpedZ2Cyt5BNl/cXEEdRgfRcwej/0YxAN5YmCZdps' +
'ff8P3dTHlMB6PQQV/3KhTdRHIkVSp6+HRjFRqhxgy0ABE6QOEkU18' +
'a+u3wVtYzm4aQ3cRFtAWU5FrWPlGppW5jtjL0W/PedzdGBxGWRazB' +
'9ZJFNB30S0Vo1JGOwmr5DcSWG6eDgUlK2c+OJld/eEEVOoC4Rux3u' +
'i5BzUxeZAc2YupkzdT2C6qaj3tqGB14uXv83D3JzJdvsADX7B2s69' +
'c3r/S+m/rPwQVMfEwHG+gdyMKWRCQ0GVUw2NZuTW1kY7+BrayU/y7' +
'LMxpRo8VvtcFGqNAm1Ax19KKb0YdkxQ6kaIdKFxyllALJ7drWnDsw' +
'kfDG1aroMeqBUpEcTRUf2CcC1CPXHMnh6A1bKB2RRw1EXFxXklKpk' +
'yMm6Q8uqKSDEDQit41dr6CiGxsED27W3IEpqBzoYwVxuA/XPCKa7B' +
'WDDew+tLl0MEhVeKNQOIg0i1kpDUpp5yxP4NgYOdomxqjb9Z4qpAN' +
'z+xTiMAfMs8b5pK5xoIOJ/Fl9Qoqjj2LJ6tNghUFMR/T29OEX3AqS' +
'D3P6AAszFkef4SuD+bInqqNO0+DuHPh244NFo9HBNihdN6E1jZJUk' +
'dtS9iXWThZ0sNHdVPra70Wun6LOoEIevNfNeodkh9FBuK3QRi2LVO' +
'I/XO9E8zrnDt79COgAzvYq60rSiHTwcRBUzh04qolueMF1v6BOgg7' +
'8p4hmSlAHWN1sTFAH0oHinSjDnhF/mz5Y1Lf6LLTiKxbviOlgvXSw' +
'WhgUHUz8V6NUQXQrMxdabtv64Zi2Q9vwun5ZmWgOF7ij0UH0kKw+R' +
'OP6Bgugg7R1wvV3b57BRhQdrLmNPDIevTppXaVq6GbrkIqkNZJU3D' +
'w66E9SKvHvRknSH1xQrS3n7dHoYL2CGh47kjiZK96x6YI6kA7CIb5' +
'w+mAkxWBNCdzcuYPVG5u/MaZPtYvpYBAdRK/0vL5N4mS48ePaRwyo' +
'JTO/37Z16K4jplWMuv9tiLH2txPWC0Pb41Z4/nB86+/Gtg4Gq9U6w' +
'Ls8qcT3d6PQrOQPBiZj2KYNAxOgQ0YhvFH0vru2OXekMPcv9swnQ8' +
'PIHTt2EB45XBlK6Vo7g61rVfIov+h1B/1SkYRUjLCff88uBBSnYu5' +
'lAj7xpFqtmhSAm7JyeOt4hWFTov1JSiFJ1n93kwQ15z+VTP5sEwWV' +
'i6FQ48PmRzYmqBNb3kDvYM31XOsV1Jyy4EXtQFZRX6wj1F00X0uux' +
'9U+FZOhdWjUMuo1B4ukk6W2jR2w/WlksV/fNUvmCGTGipNZuEe+kD' +
'vIHv6tVCq+2rhVDnsV+oCf7frs7Jxx2ixN7Fx1tiy/whVBZfXppUR' +
's80AoVx/caQYi0XGigZMI5nPzxCh57uiTc3kV0pHl0r6xcesqOogY' +
'rlw1IPkujZld977ojSWH2WP3BKsE43fbxn4XbnCN9pu+bzKUgf87Q' +
'jKtsZEGMUQH8O0X14TTCO16UCsLlS7QQcYtRqdkPab772+YDpROuL' +
'ZyO/pI7NgI27/0SwUYoVh8ILoj07cd3LvrooN8aBE6dPynP0kpNXL' +
'uBUHEpMMGBDWcN3cf/EQI6oQaLFrTQHe9gjqMDkqVysAKCpd+b13m' +
'RlgMB/2R5HjHz/2VH+xN2X86seXC2OQJjsEitFqthupGyKFCXi4PH' +
'uPqmxEIFYD0v4nIyPgqhSEs9lzqxZgO+ukg+hzw/pG35Pj5VCZqiG' +
'nNnwxi6A0YL24LBxxen9j2LyMEfs3Vstaqma/usUepxNDeqwjVtq0' +
'f4jesXQzQK7ZBH/6rYW0nOrSedBJ7x7deCDL/TuFeLZ//ih/sz+V2' +
'+7nQEC6b862J1yOCiugdmBChEP63o9QOc7HGdsqDxmNHlAq9gf/1k' +
'x/zmZNr0oHauCCItpnsSZK97byd27vpgmqnfjU58Z99IgQ1EwrqAO' +
'G5EUH1U6Gg+j4Y/ECpep/v7y0XwtXf+WJlYKMws9DdvXDsNxNjf5/' +
'c8i74eiwJOng/MXkiYQGcDwod+NVqVO+716r2IuigWn3YSkWZkxks' +
'/K6wcEwHPXQQfdhWn5i9MTm29oTRiDN0crSHqh1A0DvW+P8V0cpGW' +
'UNqnmxija1xFhU9r7mSy1Tn1B41a1iqb2Cl8MCfUl//9+jjuiZHow' +
'M1GPsfR4mUh4WtWSYbkIqew+jxy1u/GbF3gHZk54JNT1IsqJslqNs' +
'gqMPXEQ/bhn1s6zVuMEVOnAxPYn3Ttq7mSj8aZZOKHjqIlpC+pevh' +
'JooxHfTQATylI00ZNyAb41t/t2Zz6DOWfi+xbe0tRzbRILlnqfuNh' +
'6a2juluEL1ZrcwcARgPj43r1fBH7B3IAAK65HY+b41d6fHc3exU9e' +
'v1GO+m7djfkxiZO6gUv4eGhnbHqzRA7pMGB4Lg29C6PQhsZ//mJml' +
'jgpqcjAW1tyQ393TjcBPssXfHx347sfV/iygQoYP0lvO12qHoNXcD' +
'B74oaRyh5RQ5/+W6dbyl7HH81tPno+X0md2caOacclYtxue0rwC1p' +
'zdH3a5OjuMT8dbdnERNEzMcoQYyC7mD08TCFOJBiCanzhD0DEc2MS' +
'evt+uFEtzOVELooQN4SzvPbMqRIvKL3uO3Z1aRums282I64wwctup' +
'ZDrMpB4v0DKSoEfg1zhYZPVi1bfK6944YUlC9eJVGFNvOKG3qnWGl' +
'0b8dJUo4Y7/U4y2Zutqvl6oNrtWZZVt/syln35hSYXITzVRGpwP8a' +
'+ee3RRrRjNJ6xLUiS3vl7yfu4WyNX6t338sqJtVL6NvA2jSAe2dhn' +
'Uk+3c05XZ8MR300AEeqn3eNo0RovvgffXybmr8vOctZVKfz6Sesu3' +
'PhXvUuPmxLRfMTjfBxEKLGP/vb/D8WatvlxvV/d+EjAuAbN5gUXez' +
'Sn2odG/jndw2dAjIOBurO0pvjTB+YtaOGmK60aKW30CrxXXRQTinP' +
'GR6cWO/9Qqqs+18tXp33ttf8A+Xy/uRNqdYARz1C2oyFNT/4Z+PoG' +
'5272Dw9q1D6uVidgJ08Jl19g7eiHsHw+ggbWdv/ERyQ9KiVIWBZ2N' +
'52e8M6x3wp2wD3ukqaVvf27Ds9Z8VMrnl3VL+u6kbHoiYVPCiU/gR' +
'KV0Rg0V98v9O1jofvfmPtbqtqVz0nuS1KcW+gcEivhqmmd+M4u0XV' +
'KS5WvxedBpuqqCGh+9k773xjG+6oA6kA7W4eyPZX2fv4I1RBovi3s' +
'HodNBdQBFpZTRaPa4652JNOTeX6lvWU6N88kdds+rzVuLMBuQ2tAk' +
'3pGJyyzvF3PdKpTtC4/Zwl/VrG8y4svkUKd3E3sEwvDLGqEcsZ7X6' +
'Jvfn0cuc+5WoDEhkeCtbl1RIsM74O5XKXRXl1kUH9BZtZbSuJK1LU' +
'EkHVuq5UT7ZdEH13acKhT0ojejjANbI+M0R1M3tHaCHRcMnTamrjN' +
'yGDRYN3ChjoBBSsGM66KcDc30cXPTxYSP+pA+u1INe84aBdJB3v7P' +
'mGfE9I89e+sR620XfTsjvBO6/4X7LIdpUq7bz3AYYAcoMVx4ZYyz/' +
'56a0srG1NvKN0KMGopmbeyq6xPqVKPTEc8W7blwnZw2KsT1+QfaVq' +
'akptCk0OiC/SQ1siXXlKtrRIp0ckStWbpARrPULqqXoIFo/7xfUXO' +
'pErlS9cUGlCVaIV+Wy7Ty7gewPEtT/cINlaN2swaJ1zx2gfPptTem' +
'Z56ZJbWYn3ncKX5zccrKU/y7KkyK3Y8cO3nPVQ1k7MX4jtnMJM6GY' +
'C4G5ASMfEmaJ/MR5/pvXjlZAudVGSkIEcgSnWBbR3olx8Z50w4e48' +
'fXZnbzn3o8SgiSDSd2uVy6TpBhvBB3QnAmBbHgfeDaH9fYOoulgoN' +
'KFjjNrJ+P+cJiVsuoXr9rSUH6Be65Wq6GuhQ5EF8VNMuSFtSdSe2Y' +
'PVRN7z3V/VSvtQ+BqoPui+JwIm8w6LENucLDIGgRNfuZktD1evxIF' +
'OoAmj+ygZKz0j25EKswaDJyTgPoN0wH+pc52g0lal6CuSQcDBdXP/' +
'TkRRtlsrFtQK7nXmHehA2IUu0vJkBc2IqgTW97L5X5VD+4JFz/W6z' +
'coqBHLITfw2zAdrGlrqo1a32NzcBPnYzoYhQ7CsaPU05nUXzrOF8c' +
'nXugRVDFU6xFdNi5p+176wkRqFyClX8hFP8k5x8zcwaHAJ9KfG/bJ' +
'JJDcf5neWDs85YR77Sbsb45tOTvsw2z6rO9/1lPWwqjfCDpQ48Nd7' +
'Wsy+RtI0aqmtHV5Yvz341s/NEsgtI9yThSCvWaP1RnvBLXD2ya+Z8' +
'4qprb+PpH/xdiW/3lYHgcmPp9/eWzbyxF+kolzEW/zmYu3aceDYOC' +
'S2VLEJ86294PgC2gmKBPSAUoml33Oc0+Vy/ePJ1/emFRU3UuTzmdu' +
'sHcgdKCS9CPXOVnw948nNpikgn1x0rk7QlBR/vXgXyAxTCfTNj09P' +
'ensi/6EBu1EGC42h0NGlKAOrq8JNAr7HEqe42aS94F0oMbNrnUFNT' +
'WSoCL8vPdKUL3bXEdsj3f84Nlt254yBTW59fdWFkX67roENWX/fHT' +
'/a/4cGwD+2rC36S3v12rfajQakE+WD0cUUdQJpxARbC7xvqxzielg' +
'FDqQh7hPJr6eSh7LZu92nLtc905ZMaFy4eO5593NATS84jqOidRn/' +
'ijcXfwCUsgCkf2g5FtEZ46DCR2Ye5qVjOO0pBUMowOuKKF/NkBZ1i' +
'Q7pI1CB0Qkrwyt6ZrtXJBW5rqvj6GPmX1JFkmlc59NbjmXz/8naL8' +
'0ckuNd2rBKQReKJfHJn4hEpgCElb/LF+rmeJd9V5DRBBF+EdouOJe' +
'dnLDEx4HYB4rJuOZuGftM6f0IDIsIchx5/10wNDEmVjHFgHPPXQgK' +
'A3n2H9qZ172/S/gh+yjUiSdea+Yz3++2fwqPieksy9gZb+MXAfOJT' +
'7fFDqAIw4gkW72W47982LxS0FwT60W9tHolK8mHlYqX0KYzWYTV8Y' +
'ymfkCklRyLhINzIhwA8yHT6a2nw4YMj3QAZr4LT8ZRgfcJK1oOGaB' +
'fsxplGg64L+cTHHciyKotn0OglrL/xwpZE5t/wsQ1FLxz8rlLyI9T' +
'r4KQa2XTyGdQb0+tu06hidRQcF/anueSVjF7FkkkuXGnLIQRG458C' +
'4SyBtJLb+SSSJxzBplkrteENvZHvEV/LDMdSVW+WHNcAPpQC1VCWS' +
'rPdYd08NAYjrYMB1sN5a88ZXkwtfHtfTQQV6twmOyP6F0UK7Xc9lX' +
'POdk2HwKZbS1IP+6nXnKzXxX6ECi4AJG3lNKU7kylKVa6RcEFoZMq' +
'Sbs8/6TSwdsy+JMOmANAj166AAtFw+ZzZtBB+Kf+GPSAaGMr0w6YK' +
'ERKz6hdADgQ//Iz74SWkQo21ffPefY38s7Twsd0LMgIfPLlKfzdXa' +
'6WRT0jGYi7Y6tKaaDf/J0sF3tp8oDd/gtY3HVumamVqbLJZDtxv6u' +
'Avjyr+zAJpPy5kpwySCzJl9JEZnARYxlLZNQ6PBVSZ/HRFmVG8JLD' +
'33Q8SHCQS0DiHAPQaKkUdgok4KN8OO5B8AI9fphBJp1flFw/8Kx73' +
'TspyqVhyUKExIpb03lCFBsO2yVJAI6gAn3AWObwr+ItKEcsZSIJ1n' +
'gV0yYEKWwkiTGhHre36a2ghGx53O2ZbYdBsvEhLqiAnNp0YQ1Njpk' +
'Clf8e/vtt6Nw8MokULH/YciIBd7wCXzSPxyyKSVDx3vBfKkL3PMTQ' +
'iJTQrwlBJEW+RDhC8gT+eEBPvEK98Rt+JEnTJgAGvMoZSVcgGu73R' +
'Y6YN5ZlYL8jJQlg1e4abVavGFOBVgoXQJHrBQqJKQGoSeBIHoQRsA' +
'V3lhofAhvzLLr7IegVirPQVDd7L/IO79ws5/JOk+Xyw+xRbDEWAKs' +
'Dgob7pllwWd6lq+EieCkHlloDARXJpjyIEIugsG6QDpF/dhhONYm6' +
'xc1xWKXhsMPWbaih7DVsNhZ1AyEFScNgUVKmWRm2SIYPnNnfsh7Vq' +
'swCK7kJrY40SqpiAoEEdAIZQLj8q+J/1RlBTaJllSzqSrTJwMh+5A' +
'LqEh4xmFtvCHSir5N9hGWMTlI1Ht+TgiN6WB0OijUanb6YjFzqRLS' +
'wb6c+xe58p+mEi97yZdjOojp4ONDB1DlIah++mIlpIN7oLr49W+lk' +
'z/PJV6O6SCmg5gONoUOIJC2V0mPdyrFV/K1Wib1ei5xTo0Chedvxn' +
'QQ08HHhA7wBIKaUoLq1+vp5Gt+6vV0vsYt2WM6iOkgpoNNoQNIcNE' +
'/XPKew32mMDW55f1C4ede7uF89sGYDmI6+PjQASrV956DoOIJiMDa' +
'8n5Q+kUu91A++0BMBzEdjEIHecPJ1IbML0uYgv857QTk5Z5JIuwTn' +
'4t621hKNWMXOvCNhX6kA/5L8ROY5T3bDitXYM03ZooFOREvPZf1vC' +
'Sbkkgd7inGBBy2BQEE3FMCZRoU/3ru4XzuVKNxEKHk898qeX+WdR5' +
'27KfK5TsZBVsZw79NTb+y1fBzBkUJr+hZSKZBxN6cYGVjF6g0WwfD' +
'YdkGesacBVXT09OCqNI0TOBls6rpGUbeM7UVPQMrDg8Jaywo3MzMz' +
'LSVI3+xVEklgZoT51fMAjwDGwm/JAI8EehG9vEWz9lUWVb8nOGwlA' +
'QWBHwIBXzFMGdnZ5lOBM5q5T0c3uJfXDkpzJQIGJpZJkSwoFg1+Fd' +
'SK45pQH5nlLtdO77iQyZPykFqh3UhgiHTr6wmUWYkgyZyMj1SyAww' +
'0CYKTHM+92PfexWCCoks+N+uFL6TdQ5lnacbjc8KetORJVmVLGphH' +
'EqpsDATz39Z7xIO/mWZCBcL8tOJNApdCo/wSm/MEb6FPPCGr8QDom' +
'aFmoIhOoloLAIOvLIlkkBN3hdKotZBxc+cJedzEUvmvaRNNUTtyat' +
'JZFZfTq9BzuklyYRr0WBL2vBDYLOgHbGX9zLvnNOrnkWLllnsot6F' +
'mw/FogZX8k5JTW0LB3l6ZpmQjqvo5/g2poP10gHhiPKcdb6VdX5Rr' +
'e4TbSqmg5gOPiZ0ID04ODf77Zz7F7XaPpZeTAcxHcR0sOl0QGkxO9' +
'cxHcR08DGkA6ZTSi+mg5gOYjqI6SCmg5gOYjqI6SCmg5gOYjqI6SC' +
'mg5gORqQDYru3epdUTnPn9Co5/ivQTT/MhUkBLIqS4QjOt6oFmHzC' +
'NDPLUjK3apdXU+3l1UsyaY1Q1isfK8rehln29eR4RVlc8EPc7DAsH' +
'CrasXEFegkqwWFaObH0oMBAJtmWdygbDAohYYHiQdAoaeMfE6uFUE' +
'wAwROEyejgh21QWiUjYstiFGyABCvKLRs7hVl4p6xXfdLt0KZB/La' +
'qV0CXtU2OEJnpx+S+HdqQA+ksa9OXae3YfpER+JmbmyOS9zMIXaDs' +
'Q1BoLEx6pmspJ5xIdjYxgWDLimCZmKzElPB52Mbn5qaKz88pJ+U5p' +
'Zc/IwF4zgTwIf9l1FL4DJzlQ8GQJIFo8BUeMi9EUQTilevTlbOF/E' +
'PTtVfn5+fxRKKDo7QIwwpB1/QSWhYm67es7XkonCYF0FxHghKYohC' +
'K/RUBXEpJeJzfssRYKawCFhFLDFf4QdYoKiY5itojyo9UIqWXhIJv' +
'cb1NL3mWwmfyGBrpkuLN8hc2YZkwzaIt4BVzVNdmRcJczJpUqGhck' +
'nIBDQohWytjJIkQ/1kybALMFGnLlEOWJ3We2/QK60CZ3vl6AwTCVA' +
'+U0RWMPRNw7aEAE9iJqPTMcIQgxA/tiIixPSxT0Ds5CAd5fUuexdG' +
'eU/T2Pjr40h+EDsLgcveYZZhFUM4za9JBIQiy7j7P/qHnHO+SQvHe' +
'fjrgXpcV7yLYoqR2S6OE2N7+lHXNGu9uZZke71RLrwgdBMGBCDqol' +
'Bvl8v2Vyr39dFAAhAeHiwW0nfvQYrP28773arP6akwHG6aDcr3VrD' +
'4fQQdW5rC5ZWU+c8n33q4WTwkiAeas5FnxgLqea54VOgiqzanK8yj' +
'sZvMB/Dnpw7nsK4D3fjqo15Dsh4QOapVHyuXDYIVC/nS99JOBdOD4' +
'96cTy7K/HMVM6ADSgqgj6EBp5Aeg7uAa00FMBx8ZHVjjb1JivcxVk' +
'w6SqS+Zbc1Nv+n79zDladvjw0L2rYF0kHFL4qGfDpycn568mp58K5' +
'15K5k83r8VbcG5Gi428PcPo4OeM1wA75nkW0XnmtBBz5FVKTTG4iV' +
'KCGgjZb1iJa7vbOxYnXLhOYXBB7ygJkwx7IfQguCUNXlC0UrY0i3r' +
'Wo8fPPTtZeBMTAej04Fsszzsh1Ktl15FNQ2kg2yiA/ooVQ5mM89XC' +
'pfgx80/ZCVXBoZjCoA8zKWvTU8/2E8HgFFr/O3+cDKo5dKr1ngYhZ' +
'/ogDKEDgCs6cQpUzAgZlAYoFGEYuYfsBKXTImqFF8x6UDJYffbsns' +
'tpoOYDj4iOkh0jzZwM2+59vc9b58TckT36OQk2kj2L1Opp63JLmvY' +
'k51k+vvdT5KdgXSQsr8qHgb2Dmw3H31+BxpIwT9ZKd47Ch3Y451i8' +
'YdhjyD1bM5+KwgOp6yTPRA9peig4Acp5zknfVEwAVcnfc11TqKpIg' +
'rPP2wlTkeDEpu25/7Qsrrwle6jgyxCTizHvYP10YF1as2SFxhPW53' +
'+Q3lqxbenKgdD8Gw0/OLzAzG8+3kfHTjWNfD7wN4BkmrZR/oDKSQ6' +
'rv2qlb3Mf1vB26QD4GvaPZzNXLK0tkAx89xTjfKPQzHr0zrsUMd4t' +
'p8OPOgq5funpg7GdBDTwUdLB1fd7D4nu0/6C5Bh132anQUr8X1QQz' +
'J51Ul8IEfV5DNXo+kAHvrpwM35Qi4h44Bfxq8mk28lJ1cRRJC70N8' +
'78CsVzznZ3zvIJq9Cw2fvAC1R6e3XsQLkMlU5hXA8UIk+e73oXxK4' +
'yKeuQWcLe/G1mps4nc314hIavpW5/hBYlE1dtdDLUIcaFIJT6NQHw' +
'QGZOwiqD9SqDwTe8+ggxHQwIh04fq3oXSjlnq9W70u7B0zduDsLU5' +
'my7FdDgLXfVjB7KqOU/1z2cg7/Zi5BRQdyVisH87mDterzmTyYfSW' +
'bWe7BXne8U6qcalYfgM8deu6ggBos3Rd4P6nX7++hA782bYZQy3bw' +
'lrBfn35QxqPq+WXSQbnVssYvGWLWVRsK6WuNxsFwHKhWsxKnIJYpp' +
'ZmkNLWhh8saR1GEzyfRBq/Vy6fi3kFMBx8xHfjOW7bBBZBV339G5g' +
'5COpjshNuqAxgT3ydZFAo/GEgHVuqHVHjgYQAd+D5jAb/4ueNezvf' +
'8ezznmZy7D55db79lXeDnlcpz/b0DO7cfyciARJJvZe0TaZCIdRHd' +
'9nI5pIOcW/Tci6nwODMo8NfYEkkHfrHCkC3VtS+XD7ulacls4F/U7' +
'bTbO6j5F2XuoICG75+C5KQzh8N+R7c7cI10UKsdBhd4/gFQkjmVHD' +
'SbZJyM2ls+poNoOoDLe2iGoIPqQDrAjWX/RPULlr1MR3oT05XLpco' +
'jrI5qbhne8uUGOmgZ+zRKPl+81NNNAB0gFvB1vngQvcI1p5KRVpGK' +
'6dLb001A6P1SCF51vptUu4OHteaclehGlwt1+8PEdjaZSuEStQ7yR' +
'cgIqa5M2lan6J1UfVh8guxfS6k+RbF8WDxXiq/EdBDTwU2igxDnB5' +
'2DmRjvZDNvMkAa/FjJZyjPudzTpINuF3uyk/d+INPKRWU7RzrgLzv' +
'ZKfjPmvPL8GpNdqcMOJok08quc0/Oe456PjR5P/1KEOyvK1uvmrYU' +
'VYNFJ9g6Sv4JN9elDz8NWK7ZuSBU1/2LnnugUAvbUTpsaFeB2BAR6' +
'PApZz/79VTtfO8nHMUtZjqQRuheVuJVpg3AMq1MSigV08pUMp072F' +
'NWqfEBcwfUFdWY8yVLDywzNDRACDbnH9k08C+1SoprXdthsk3hLW3' +
'qOJXZUAaKZb3dSlmb1dXV5ipCELfprd3F8LWhNqjhjQg/g2Ueid5k' +
'QEIEboCHbO98ztTioRBlQ+9iRKIhDbFtLiwssBXT/86dO1kC+JcNk' +
'K1PgIL3TFLae7ArP6is1hFGh6BAB3w4Pf0TK/Nj+lmsXalWXmgsLg' +
'L2AfXt9hErezTUB5Kd5tQLlcYha/yyWTWZ8QFzB6SehrZlZREhzZC' +
'K5uxsxgkHi9wEfm/XW0cq/hl4KOQfqreOWsnLUuPwD88LrceY/kbh' +
'Ur02DTHLZX9EjkDPIpwrn5rlvxwUTelDfkEf6KWGhyhpiYIHzz9Jr' +
'ca1Oug39dTmlJp5Z2FKVZICWF8sc1Yu0VuqEveoCyonU3qGvaEMgF' +
'mbJBRiJq6oUHyIa1Pb8ZLcEQirnqIlSo7IFa8UbxN74RD7lLbymtO' +
'OMiNJwhMzF0LE4oTNCc7kJtGmKtpEVoisoe2Wm9oud4eyZGOZ1LUZ' +
's6SZzFjRjigHeKwr29pAHfaR08cQCHSL7Q1glmai9EPPt+odh3y97' +
'9Ct+jwFQnrJ2HyJjiwj2nVJbaBEJ4GQILy+fZPMJQMFfaJKPx0kNR' +
'2osaC/scY/6DbDzJuZxNOe932hg+TkB2bbgX8neTVf+HLe+3Le3dd' +
'PB5DkLDwUv1Lw95f8r5rmRsnMPf2NsecX5C5U9V5SA+kAv5J7AYET' +
'4bszvOrIP07biQ5mq0MqObZDcIbeWAcj1B70Sw8WC6dIAcVkp9I4K' +
'HQwVbxUD3XFh5rVB/rpIJW+1jN2HbZc96KXexaBExyoaqKPUPdepb' +
'DFdLBeOqh5y5Iq0kFm9eww/g3pYHbWGr/S1TGcZU7vBsnO7Oyhysx' +
'MDx3IL1RvshfLwZF0+lQ0HQybUbJ1YjxFW62FBSt5xtIDjOnMqXop' +
'FLNc/r5ycJpym090mrOHRMwg556/X4TTUqYUvndvoYYOwgXOKYRdB' +
'vQp1ElMMR3EdHCT6AAdB6r6yYlOzvllGvca84H2tvOmlzmOBDium4' +
'Q+r8b27dQHyUTYU8hMXoViA/gFKfjuiUCOUkJPPx2afEAnDz1MnnB' +
'T1wq5kyxDZiHszpRKPSeJo6fgZr9cLO8npLthR3t/VW+QWNZ7byJ8' +
'OeaVdqS59Cup9CtmUIG93GgcNOkg5ZwUBBioGSrdb7leP20lTlGBb' +
'NVPy1iK9FuFDvK5aww8rU7D3KGMAwtqs7vp6QchfkHrsXIeoZ2Gvl' +
'opn2m3H15Qjq0SOMPGBQkkWrJholKmjDU4FGAKKkWazRktgv7l2ym' +
'9OIitg6JOzzv0Np4kFKEVtixCBEAPDMWWu6QcCWvXrl14i3/b2uE5' +
'I2VeBKhliEyGI/Ct0AE/hBMAwRMODnCN2O2rHaduM4lOxbk8P/8o/' +
'QOW00BRVX3l/LJA9FL9CsOXcRvW4Pz0WQSumKK3dzDTOBNWaLtd9V' +
'8ohqp+WGVe+X5UWav+0LRe6EQ2nFlaMg1W7UHWSnaqM+VftouPSRR' +
'WaoA3itns1JlM/mEGNVu5XGnMhL2M8SsQ1HrxXD53KV85SGUD/aBm' +
'83mUBugGhII+JqWCxcjBOuoMrC8pbVyJopAo1BQLH/esPn4uUhRSn' +
'hoVoUBy7R6FZIdeg0nB4FfwQNzGDcK8XW9di6A4sHP76s1sBWm5jJ' +
'HEISHX9QogNAqqDSx5Oi4zFAnhEwq5CBsVp6ZepbJDL+vYoVeombQ' +
'i0TGRspaQ7aut9rBl3tn6mnqFXUWvKJQlb7IMsKIWytX06XgycnWr' +
'2nu5rI9NLBi71+5QS+SoQntqJ2fSR04tYbtN72NcNk5kk3V2HDaXh' +
'ahkAX7l672jc3oP6ltX73HaMzA1mA4Aa5NXnewvvew+K/kDYQTXec' +
'vP3QM6kOGd5MQHogwH/snb9PmSnh8oc83AyVdNDyV9RGMuXwzUqFH' +
'YjygWs/ZXXed4Mf9DGV5LO344N10oc/BnGB3giaU716CDsFhK96Wy' +
'95oqX634drHcKASHZUZPfk4aHZ9TPXOLgB08cROdQv5tkw6yhUbdv' +
'yR0oIaSuuPVFdCBuk+H2Tzl+YcL/inyYBcfEIjdHUOe8pchZjEdjE' +
'IHYbek/pBY8lScZZMORKkOJ/f76IBjRF11PQk6OAqkrU69QDqQMSL' +
'cTJXPoMoqwemM84IpOah0dIzADsPooJTs1GvnWD4ogXz9CfZErHAi' +
'uGMlz/E+53Ty7mvDxKzqX7acbgZBBygBBFVuLzGodOJ6rxN0kPa6W' +
'UZ/kx23mA5iOripdABBzbr7XPv76CAUvOPpzD3JZFd1dyY7jvtFoQ' +
'P0DnoMe8AamdQFy7rapYDSKz0Wg6nwqwvsXOA+7x2X0Z6eX2ayI7O' +
'9A+nALwL8fyS9Az99rVK5F35y3r1i9llIQ6FqVsoNJ33KylxKWdcN' +
'ljjty04oZ6xQ3eV6K5N4m0Dh2h2TQfKrDYq6oKEatWW02aE/3Q0pJ' +
'jtx72BdvYNM/iFNBx3G2EMHqqa60/Tl0pVG40itcLQ2/2hG4/Z8Fd' +
'2KeRkpygxS6ft/wOp6cDqid4BgkXGhA9x41Uft1BUzEGjys7MvsOh' +
'YFLgpBDURM5CFMIXQQRhUbaEnPaCDoNm1mC2oGaiYDmI6uNl0EIpo' +
'+mo6vc9Jv1kofNnzfSdzvAf2h9FBz2/Y1Op1zIcfezAdKOOl7rdl7' +
'0Kx0EsHpeK9QbVqO8+mJkO2KqF3ULzXz99XqtybSj/H2GvBqZAOGu' +
'gdHCjmurMJyk7pXgbVQwdQR10NPmYiC8Hpfsv2Lg0lwlmGbN+0sqV' +
'mD13vJxnnsiiN/LWDyzEdjEgH4WpipfmX88tF/9D89Fn6V8M+3Q5X' +
'2e7AJxJWnZqdaf+s3Xi4NY3gH21NP4o+QquwkskexYdTAJOpQ635e' +
'dBEIX/aDU1Pe6tspnxZV9k1115u9dFBY2kJn+ccVOgyQu6hg0zhUQ' +
'mqXrw8N/cInuPDHjpA2xYxM+eyq85KpXyGQeEqw01d3QOM4L0t3KF' +
'MIGI6iOngZtGBl/0+v5VPurZPvp9394XWPjk/k/nL5OTxNLB64s3k' +
'xAd2+mpq8gQ0eTsckL+qKaCrhFfzFwu1Wsp6xbZWe9DLCgrZt5ASW' +
'ZvQ8xb35UJobud6+2m3uYoOKhU/+6Mg2J/LfyXI3+d795aKr7A6wB' +
'T5cjmPGK1TNW8Z9YjSLBZ+7Pn7U9ZFL3VhGB0Q01ra8Qm6DPXgSKV' +
'8sFw+XKtCsA+m3cPp8Wtc7hpUm+nMqVKmYxry0VmZH9e9txtAp9Zj' +
'5eBIxj7dqp9mK4jpYPTeQQikjRk3f2SmccbsHdRrD4YrvxKXMonle' +
'n650V6anXphpo3kPTw/yIVzB1Oz89NHQ0bIH3HHOxIpBQAhW85PWW' +
'Xl8v2ssunaqyYdhDA4/Wi1coix9NABbnBFSmYaP8UTFNpAOiDYcvJ' +
'URXoE6Ud1N0FnM4eEDloLC43yQdY+/OcLB7MJUMBp+GRpx3QQ08FN' +
'pAM1B91PB7fqjebCtQDoRCSfsRNXc9mnHeeLOXdf1v1Kxj4BjAUyh' +
'/6RWn8/5wgI4DnvXnABPJRKX6U5UDH/FXMqmemXSXOZWC+Wy65zEj' +
'hf9E6WjbP2zLkDmv7KXL/ciAW+KcmB3lWyos9eHIUO6vVwj5pio+F' +
'Z6Gs8X0XzLN9fLDfymUvcegLeSkW02cOQrYJ7Suigcd0e+zFBy5gO' +
'NkAH8lboIERR+ye+vTxVeR4VhB8ShodM3jA6gAfew085QLA/Re+j4' +
'p8ROmACwrfl+xl7T++ApSG5GEgHcBzzGZEOFOw8hAqvTh2qlH+60D' +
'pKOoBg0O6lDAiqP5TPnGpWn8eHMR3EdHCz6YBWT2EXQPGCfEW8ZVC' +
'0lZJ7rmIo6vN8C+osY7GJkvuulZFyRGmxAeO3gT68mEUkFlO06WKZ' +
's0Jr+phUWRoj4N/QJ+fKKxqwsWZvV+fAUkLok5VLMaNhJ5sJW8Ht2' +
'hiPjau12sBy2jDDw41fbQKXqpWD5fwRbnTT0OtcEDhFmo7Gimx0iJ' +
'TQgYesAkkAUWtO74cp8RLPpZkLQhKOxDBvWhnvSWaFUwBKgkJ0kh1' +
'khODAAAXrmFTqzwQKFpcJrfxKUiisOmUYxCKPzJGAM5/wylpgdmg6' +
'yCjEsQzhE1kgTgpN0LGcdxsOPuEfNxIRSnjPnj14gsBL0/Ol7Mp08' +
'xFUGRRyVhajZvmwxokDLBwWCz8n7wiuSiUifFyZAHjDvyQIkhFBUi' +
'JisJJ+JpK6QVvZG+N+h978mVXJKhD6ltS21TKuljIKpbLBUhXwZ+C' +
'CqAiB6TQrXRhTpII+TVqkwz1pThQbhk8SFP/SauiT9/CAV1IsrEQK' +
'jOSCzNLjSPeSC4oB/21pW1Omraa3B5R2yue0mBW0pzcWKTllWq+Jo' +
'5Yyq42oWQ7iM9CHehPHyMKy2JNNr2FsKl5XSwXDrdfUlsu+cbwyrv' +
'BZ0MedB+pEeFGMc2pra9phCrIRRWlJjvtb1c7PNCMv6V3ui3q9m0B' +
'3j5OzDIjA9B/TwabQgWgmFMuYDj7+dMDEMC4CdUwHMR3EdBDTQUwH' +
'MR3EdBDTQUwHMR3EdBDTQUwHMR3EdBDTQUwHMR3EdBDTQUwH/XQg2' +
'2gQ5Ok8ffCZr/fH41583AQDPvPG8ceSQoZfVqcYc4I70NtWyL46zB' +
'3zK1xQ0gfFcnK8po+s5bWqXV0fMoiS5D48DJb1wiqg/2ltdUAS4f0' +
'OfRoy7ue0k2ZFEWUrMKF7VttgUELoZ1qZH4gBAz1QZihvDE2IANe2' +
'NshhsEAtJoBAB8/wI3hFOqDdC/0zRmIIQYOgx5ZCpmDrmFKHGjNJ0' +
'rqJ2AQcaf5sj0yGEJPwy6y2S5FUCQLwrVhJsRG1tGtr86eeb6XMmW' +
'a+EpRor7Y+YjaJ7YRKApEwJsufIdyhHHADV/rEvSSYWUMgRG/BSQF' +
'/oiIBgQmY1uZbxE8WtQRu5oXohFd79+6FT97ACddTc2BhEjHwiiXG' +
'eJFHySBTy2Kf0nZlU9riFJ9AtlmbAqeChLfrg9iYWWodZjrn9LY/j' +
'EWqEuGwnEVsWnprI3EU8ra2VpI6JT8yUgobUZecxXuGAA9S75SBGW' +
'02RvhFU2JK4MTCimImLCx8xzRQSBhIUx+KWtMHj4rCRpRmjHzO9rW' +
'gdl5qaavCpj7MjsU7pcyQGAtfUbMl/jSUvSJQqKEPgK7rrWxoKDWl' +
'D2G/TR/syD2CZN82UZKLykaIaEkYFMsfKr20JpLtyCQE+cREYFoxF' +
'Y3jlbnjnNABzY0KxlarMR3EdBDTQUwHMR3EdBDTQUwHMR3EdBDTQU' +
'wHA+kA8C6LzrjujLDPrwr6pHvHcQpq81VukWoOWAXGcol+xxTKbIJ' +
'4Y/mQWZgR5ojwzmolzsuwvzxnUQsFcNFHQy1s4ZKrllqhQyK4XS8x' +
'4wCszBdQwGRAHveUAUFdQjFKyRzQbumlNGyht+s9n+FThnzZZuENY' +
'szRbwExQTxKNSGOdADP02rREMMn4gnUC5tw5JYw1VbL1jimym9bxq' +
'gsxZvthQggg6ioBYp6D8T1A6l4IE7KE97M6jVBvEFdSCIJAuQ7+ue' +
'QPqLg8DWbPK4zevWWEA2LBT45egz/t6t1WBIIYRN+cPPpT3/6zjvv' +
'5Lg9rvwEDrCM//cufANp4EM8gU+Gw1KSPApystAIX2Eltpe46QQ+Z' +
'IUiCsFAwhcRWNyimk1A4PAp5SZ1vaBXH7Mo4Jh4hszcIUySiHB3W6' +
'2NmtWOIezQW1hziodgy7wgDVImLOSe2sSHTJ7IEsWMIs1WQMlhQbE' +
'5LOihe5YnpZoZYSLn9KpGmS8TmSe6ipDTmev7EPge7VhBTLkoD5Ql' +
'tggRElEkWGLTelGnzGo11UIz0X/aeqdr6lH0MGssiqQySWWMANIyt' +
'vtmme9QZwnJGreqWlVHZZKk0NTH6JAyZMbzNr0GjdAnMxEynQqMJW' +
'ILJJJTqPoKLwj4E4cRlMzeMoqCPmHHVU5IQYCdqnjPMrSYDmI6+ET' +
'QgVrA+3gPHTSnQAePD6ODVnPv3OzroIAN04Hr/WSp/TMr+8JC7XIP' +
'HdTgp3b0D0gHrdZjQXDgE0QHKLFa4exS+4mYDmI62DAdQOZjOvjnR' +
'gdF/4XZ2UNCB3ZwzLVPt4tXvOLR3bOvE45y4WmY4SaBtXTnzju/2U' +
'MHdukJf7wzN3tsYeEloQO/+Q0nvSJbC2bGO4vtc0IH0+Eg4iNCB0j' +
'D9PSDDSB/9nJP78Byf2buMhe4V4Li5VbtnEDl/J495nE5aaSkeTYE' +
'nanrexPBJwJfqv9sFDoo5I/U6/cLHdiln3nZc4F70c0fma69OowOU' +
'BzTlRc+AjrgzlGNBlrBI41227WPBMVzM40zQge1+flS8qxXOFsurb' +
'j2q4vto8PoYH7uyWg6qDTaiKvVguwdQpG6zpGcc7ndOD2MDsINxxq' +
'H4DmmgxHpwPXvcSbfyuf3ZZ19PLZYvnKzX/Zy9+DVKHTg+oHnXLCs' +
'kwXnaj8dFEEHal+jYXSQcvZnJq+mM5eC/MWCf9jzD6esV9LWtazal' +
'bpYOBiUfmTSgeMfSIdbp16TRsdjaPrpoFxvtepHIugA7xdaj1VBB8' +
'1HTDqoNecgulOhudmhqZmZnPNT136bcj6QDqqVqXIZzfZQTAc3Qgc' +
'Z/1DEjrgC5uGe1ckVkw6as7vbtXMz7SXLfc1Rp88slFeEDhb27nXS' +
'v7KMna69JBjhKCofOFZqzvVsQtvd6ReAH55NE77Kj3d27z7WQwcIZ' +
'KF1tN56zMsebdUuIy4/eLLniCWkNpe8nPMv29lz/VHMBSuQld2zXx' +
'tGBzwrJ/oXJDsc1zLpoFZ5xCtermcv99SmG7T41YJKcD8d5Mozst1' +
'rDx2oE9/O2ap4w61Z+3YOx0M7u5JJDj6BbtVesvUr5rlCQ+taRWEP' +
'iav/4UBpQbON6WAUOuCmowN/ycneV5mJjuftEzrI5osRn/f/is61i' +
'N6BbHOaNrbIzmZwvZhOXEtZ1/C8oM5EDjsOtVraOmVups0zMaEPtF' +
'oPhScjFx9oNh9AHRWCh+Q0c0ufk2XSQaHe6oECJWa9h6YNO2O33xt' +
'0tpgONk4HxpE0PT+iEKCv1Oz2DgrjoIOXpXdgFx/PuytyAIHQATjC' +
'Kb9U8P5WA8tyJjzMdAV6LMA87B3MzQ2Eplyy42UvW+m/5b/Nxq/lF' +
'E75gQWgThAqgxq449fmWygqpcrZgVxzPV9hX+Z1MEI/HchJzQN/aR' +
'6gkOy0WkdLlUfUSW2rIvJwzV42I1ponZPjJOrZzkA6EEauOJ1+Omj' +
'UHrd0CfefDeciSUnQwZAzB/FJ8RxTUgYdDDq31DY+N1lgcFwjIk9Y' +
'RA/FdBBBB3iF2JPpfcPK0EmCEY77ueOpjHu9gaSvMlNuodzdv9q6l' +
'kteDYL9ck7ZsB9U/VLph8wUOhqy/17IBerI4zU/R08BVYAeSdo9nM' +
'1csvR5l+nwpLNrnnsKHQHUYNZ73koM1U8gkwsLR3eqlU2od782zS3' +
'lQ8AfHyp7udGOUKHsLS4+jm4vYZ8d4UVlfDKrzYGIgfNqDRr7FxyL' +
'FjsiEsdOvdJnXq8qggeOXezUi62Q3wVl5yOj35RwrkGb16Y7TAkHo' +
'onSMsJAExdg9ac//WlzJBxPaOxBgZlTy6wI7At6907GyBVApCFGx2' +
'/hOBhy1113cZAZIfCV2MAs6Y1JGaCt1e92cQVBwT8eMhB/6klWkKA' +
'E6OCuu36OtO3duzcc9Nu7d7H9eKbwCENouCHchYV2xx0C4w0DherZ' +
'lfn5R1FEfrVJGXCUOOH51NRBTj1Mz98hdODjmnrNSf82RNrs5RBs3' +
'SulZGdp6YlwS/PSE+32UQV3K35upec0NC1XELMV272SWQ1lUNRZES' +
'R0ochGu53Rp7y1CiusTXnrBg+zgwyKtIMXu1EY53Ki82Ilw2M3bbf' +
'LFHhiu91OynywghqnlZoZbCp7Hz00/ZWm3oVVcAO8y3PfkP1K4zRY' +
'rDl1iNSPt4324+X2E9KOQCgcmELtwE9tfl6dExe+LadAVWdZJiaL1' +
'bIdOdiuUUQPIqwsdNNqzbOo3EbjYQ64hVMS048qxWDZyV7sKWc/0b' +
'HUqeX8ZRJhXbf19q1LagdaygYfst1xPIGWToLtLXWAMl1LmReSAsS' +
'aiLhNUoCHHcZeyhwPwVuaEglikws4hM4nNAqiZZGs4TU/ZFCytpc3' +
'QgSkBgZLOqDhKK+kA0AuuUNWovXTQTr9S6B6EpWbO55z9hX8/dD/v' +
'dw9eOtkC3nveDp53HWeTtlfMYDxqus/mxrvnnHmWp18/odeEEhPoe' +
'JdFDso5DOlaMJNXS0WTpX8r/bTAfKf0lTiQcmvHeC4EK3FvHKdLYs' +
'jQnilzkHuCkBQfFtORSmkr0EH4EyB5RyB/7S9XMquWInTGX1apZK9' +
'MLRWcYXY5ZamQ4ExZBJ8UW+dm59+FLJHHR4+q1OHCvWHwvMN82+vI' +
'XtJANFKTAcbo4N86QkC7+Li0T462HO9kLNrs3OgeLk6NWuluho7IG' +
'im/TM5dww42VLnpgWgAz2+0QreBrajpZMOUGtO5ZvdV+UV0EH3vnY' +
'5qD1GmZkprSA75faSl1yxs+cQbLWJGN/OaGWYcS21X0NdNWcPtWtH' +
'6/WHkOsAmnbyCqEVKspAOvDUCTvwMD9/tI8O2tdh38jj7t1fgx/UZ' +
'qMNfD6K6Gz3KNMQoLPgXmEJ79nz4kA6sNI/IgLPzr7QQweNxcVK8D' +
'r5FElqt4/MzX6tWDm0a+aYdCrRMWZ0CGGq8VMkBvlp1R+iUevszK6' +
'9e78RFtfMrunK2YVwK3iI96NW7iXdfFbmq5dDc03US1h6XTqYm3uh' +
'3X68EDy81P7Zgl58rbp1Z6Ti2FQhjdDxWsFpeEtnnofm4CbCjFfaD' +
'zM0Ww0fxXTQTweC4b7zVhhIbr+rzsSR2WTP923ni3n7RNrJm20tpQ' +
'ZqULD5wnMZ+4e2df1oyxCZ1QxCQc0XuD40/wvhyZiZSwN7B8i/ZZ0' +
'EJVnWtZp/kda8Qgfleh3avmddqzQOOulTnntYxohC7qg+ny02+S/w' +
'vx62ZU0H6iDLHJQNfZBiWnUo2HxatXOo+kpwxC092KPIsfvQmn4Us' +
'jc79cKsPlZADuqy1LGGRD9ER9mDOKUzhyF76LwH7pXmnidF9vbMvR' +
'7Twch0cMXUFZvBChCDgZAa4BpLSyhbaPKO97f9LCBHYbJ30JydvWP' +
'+67ZimV2NKzPtpdbCY/nc88R/6KIhHTSbGYUqfgqa5NtB7Vw+sQzU' +
'gsJfnQdM/ZYB7m3+reUes7Q+X68dndq1CynJK4HhtEJ4TPPci9PzX' +
'xctRX5ID3KN9EDLDRWMyqGgdnSxfRSFgyqpZ8/t2vWESQe1ubnM+G' +
'WvsOpwvUp+GQVC3G6rXTVYlVau2ztAHqmQozZZcUDRoL2IQEBbPQe' +
'u1dLhnPtAOhBVp9E4YvYO8o3dQnADh09RGl7tHNNMLStsbvUjpANc' +
'uTqDC3DAvBRvp/x1fo7eFtiB03xebbFbp+ODpwlqhRWhg3p+WehA1' +
'lmk9amF9Wyn0m6zSYZawcyhmA4G0MHkm5Y68hiqvjqe8vpcAB66ma' +
'uAa4QTrkdz91nW010uUNCNOgqCZ5kRpMo81J7Z1HQQsEsLfC65J4b' +
'0DsKj09g18IJaIX3RSveeUxzWvn8xnLoODqTdA/y3Vm3Wmg8ojgj7' +
'C2W7I3RAYK81X+DcAVJbrZyydT80UMOJ0K/SfSKdHiJ75fyy0AH60' +
'UIH03q3lrR7vzT85p49lD1EtGfPkzEdjDxYFKrf88Gvodj39A6u00' +
'H7CQ71h+dft34VuOf2LvxVOWjt3fsS0llrPsLRDNRCe3FR4CIcUXF' +
'fm6lfAQTliwfrgCzlDfgDERJvPT8/19W6Z0srC3v3snfgpFZCOlhY' +
'kDEoL9sdjWF1q+GpUOo8o4MQ8Rs2WFRptDNqRKVVvMxxLRO3hQ7qr' +
'ces1OtdKU2tNGePLbSOCh1Qq+ekRjjApfoj4YmxuZWlu74J9X526l' +
'A/HWTCyb4VlEzYR546JEE1d+/uGfPnidX1sA8S5jTvog/eLVigrjl' +
'YZNKBXTo2h96BnpyS3gHHxEgHKtmD42KxmHSA3kF4ZF79IeBDPx0E' +
'2U678TCKF9Q/U3otHiwaQgerzj4OT7pPfODlnkk7fij2kx3fv4d0Y' +
'LvoHXzQ9aZPw0QvQOhgzfH/POigNHiwyE6dTCaPdwEfdBAcdhTg9/' +
'wC/6JlnZLQ0ulTteLbteoDnn+/n3+FrwqJThOtO+wd9OL8VPFS2HA' +
'MO8BGfjkoPSi9yJ5f2CL8y9XKCxk1FmTSAXoHdZ6bVn+onw4CFz2C' +
'JyFsUPBaxXPxYNHodDBTfw358VOv9w8WNef2WKtNVpxwhPC3Qe1Kq' +
'/wSyJ0LhHOFR8jmIf4Xu+w/0DSli+TJlVr1VZMO+meOuoBjDBYBwK' +
'nietX56x+quVqk2aQDdBxM4uiCtt0JD9xcfJyUhKQuLDw2kA5a1bM' +
't6MnJc/2DRXhrJS5dz6Dio9nSFRks6qeDevEyQdtPrczPvW6lfwVS' +
'aFbOSLDTc3MpDhYlV5pTZ6zEqwVnGR766QAxthunUTUA4anSsaB4D' +
'gwedh/qTzCiXPbyTDhYtIoOVH+qO6c/XbncQwe+HhProYOMstdVcx' +
'PtRulniIvkqOYOuk21VT8d0Ttoqakoy/lpNpw/ei3uHfTQAXefsCa' +
'Ps7h8561w9rlQcDJfcjLH8+6JsEdQLDrp7zuZp6zUD0WSXatjhcr8' +
'dY09nOAuFlNrTSV7qas8T5PGRUgArVVLlQrPuGdoKHYwQqNxEF2Au' +
'n8J3YFs5hSVfzE6YvdkYCzZxDLEOAPcVnRQyV1jVyKTWA4PH29BlQ' +
'JEXLbDiapzQHtz5ktEa3bqDERiamamXjxa9M/MzYU2qGru4LqHebU' +
'fhRjwQJzEZgO9coC/lT0K8a5VzkJ0iY2E2QVjrwAyxU61OSexXWxs' +
'duodDBa1SQ+ecKnOTr0TAo232ZbFKomNgnPliJTr9BkIrpAxIjwTQ' +
'4v3RWUIxH1BF5R5vNgCLeodO2VlE+fyaMhEUuMIszAOKcZcBUZUZx' +
'QyyIwi4uA8zY2YhnDoRo1s2EoPDNwr9eq/Bb6VZ3bRfNEmXOsJ012' +
'td3a1/gRAxAQ3556UDmA4L5zSs8C5jkxiGrDf4VBGJfg1YdlSOm2r' +
'dZRVgyzMox7T/7YbSBhglw4Wa1dYJjJKozC2s2vmWGvhzqmZY4KZs' +
'zOvlQqPNhuv0+SeheA3984HKyHBqTF/TnMIL8/qXWRZrcWpWRYI0p' +
'nPXCqXXoPnQr1l6wIBo3FGICQad6Xd+jl6B+RQusrs7n4hX2yfE7v' +
'rWnMO0I1Ihd1og0fZxnVqZhfTj9A41RsicO1cuf4zZM3WY2hMDz6k' +
'tWo4AbHrWM55oZ+L0XOfmnqechjSgfdyCBFZFPLfspdHxyE4JzRMf' +
'S2oHUVrymRf6G/1pANECppmw0QZVqemQGdCB5b+EM2Ty5Goj0nDuV' +
'2fV0vjLloizajdfRv6HE+aHtFw3bQpIjtwYSDt4W9T2+nIbhVEdZo' +
'SkSOUVUxAqMc9Uf1WtWFpWe3YzJtAn4wpSB7ojS8YrBj/d4f39UZD' +
'juPIttW+PgSZO1Tw8346SGeesSbfDKeSnbfcnJ/PHk8mnvac48XiV' +
'zLuV4ruCTe7L536fNb9IceRMhMdQDqSYSWvE0TRfQtRyGBRkLvALg' +
'DzEi5tK+wv5J7lw346QE6t1HP8Nh1aAF4q+Icb5R/Tmis9qJtgpzt' +
'OOJq0Sv/nZEE2Ear0osaDDqz04a5IBG8TA8XOPGNIKUSXVnkQLahD' +
'xfJPK+Uzgi39fIGGgwCFDqC3SKSQN+n8TqvOb0wHI9KBlx1slpnH1' +
'el2DdDxl7GRu1vv3H333YvalhURBa0FGe2Xb/fseZFJIjyqWdrFEE' +
'6VAORzHYl0TqmsQgfhVHL1T+xUx0792kl1qOSHc7LFK3Ozx5rBsea' +
'eJ22dmD1Tv0YsrTvv7HqLtEYDd8j87zA6QLci55wZWCDu+HUj0nq2' +
'w8mRLg+mr2fHTl2/z6C7NH6dSUWYQ2PaZHcpQWv6rECoeHDtt/lVO' +
'Anbfk2oM/I32ApUTKrK9vLU1EGhA5mvXyivsJcHF471af4d5VcEv/' +
'ct7lDzF8ug/lpo8dudO6DNSUwHw3oHw38fyD2wOpd7mv0UhGtNnuB' +
'z6OrF/AmhAzfVCfz9pAP0fMK+hgc6OBlBB1yGZiWujVLpUBUqlee4' +
'EJh9N1RBIail0XGmJbZzXRqLoAM9viR0EGpB2rzEFPtRVrXID2qka' +
'VBkyN4K2uB0868oe5wai+lgRDqogQ7coWjjJpb3zIVrk0XdLYAR7v' +
'65SQcIHwRRnb+Dnyy1X8MrPO+hA0CNp+dVzaGkWrbTTwd8VU11ltR' +
'+F9Dq2+2ju2e/NjeLkJ+cn3vSco8tVlbs3Iu7Zl5bvPPOXTNPNGdn' +
'7eQ59EDt0mBAM4EaOm27PZgOKqADZ/C8hqX6BcggvsrXl643EJMOa' +
'HqqKcBk0oG/NdfXhJ2RQbMh7eCyVzxqu1cGkpf5KzorNAhH++2hg3' +
'p2pdp8ae/CS0IHeYPm5DdfvewVjmay1yfZkexCcHoYBxUS4VicLGa' +
'3uvZjMR300cGgdWRu5q2MfaLnFbjA958hhhPGPf+rlnUynHidvBpK' +
'UaprWVTIXRA6YMolU8PoAB5MW9brka4eEUqrDiYKmYfjmHQQjinpc' +
'ULzZ/YOoJDU1X4ChDW7+Hhv4zLW7Mhvpnw5V3ghE6qmyyJ7xcpgnc' +
'1Smt7S0hN+8+viAdIb08Hog0Uqqd+At1l83n4c2M6EKcvMB/fMPcl' +
'k48O7teunA74l/g+kAwGiebVtKZPH8u+hAyYAjp+3FvbumXux3UaM' +
'X2PIDPzOO++Um6mZXeF2Cmph2pR7JaOMRQVOBZxpdYZgg9pji+2jw' +
'waLwmVi04+Gqd2zZ6pykJXCKYZ667Gl9hPh6rDSa5W5PdFQjI4qPm' +
'nu3m2nXgtX2BW1/Y/BhpDV0M4qcTr0UDh7fUmOTnM4kxuu1+ietsP' +
'iRcot50irGJJao/14rXA245wpZVdmZsIlCU01E72gtvsIF3ZVDlE5' +
'N+mgtfDNucbXvNrRhfJf7d37DUpI0F5suCuk4CW1LW13sjt7tFW4j' +
'DJByPXa0bT9arVyph4cmWog5KOt6XmEn/FfSI8v10th/71cb9WL5+' +
'bmHmGyw0qMB4tW08GtPOAsc1wWrOHKGd505hk8d70vJ5PH08m3LLU' +
'kjcvZ4IGQHmr+/v4wDUFQCw6E8x/qX8mCzLAQtIn5zAILgTfMJsL0' +
'cvfIxtEh4IflcbBef4gbGQHtHfdw4J/yvZ/Uy4dl7oZVw31lOfWjx' +
'jlnIBguVPfEpbTqcYAUVDLanO1aVOt5660WFDwCIGSGy5darXMzeo' +
'NrtkrK3kz7CcheOTgCOa8Ep1vVo9PNR+q1n6BRttsPZ/JHMuPLjSC' +
'E/XprATohtJE7lWPPF5LMLdSW9AY1HNqFf8I7YIfATjglVt+uNvMU' +
'8BdoXVJbOpNiED4XQRNI2UhlRlImavk5M8U5aIIz+UiuJnhyDpeoC' +
'EfMBDZ+5jOfIerO6sOq6ITCcIUf0gFyjSv+3aW3LyYgM8s79VJleT' +
'u3e3c+9dpM+zU7eHK+/GtALmGWsc/pbdmYsM8oh5QT+eHw753a4Z7' +
'bX8Mz7nnD0ObVBptMDEGGZGTyHTcUYiF/7nOfY4189rOfxT0ffvrT' +
'n0b4eAKfNOBnZlnRBC7J7E5tQsBK7M7R33lnJXi9Nf3N6crZXdqJq' +
'sAr55Hb7XN28bHZ0hVgmlC5mAHgmm/snlPmWH7wItgKBcJKnJv9Wm' +
'Xuyd2NY6QtQmu58QS4YCb/DvQWzgUvtB6jYLAqQU+u92rVuTw9/SA' +
'eoqXctfhNChsCqdcQ7zG0pWbwOt6iEPBwRm+XDZReDCeUl+rFlXC3' +
'veI5trIlvQ/5rN6rnA2NJlJSa2RnFmaI26HpxMsoKLQpEseCdqHsz' +
'TwxpzamRmNsq/2Riskz09M/AQLMTz8a1KYL9ttoiTuN7bWBA2wvXE' +
'TPbe4kMdSmZCNxWkrQ6J2AQ5zZofbYF8whERB8hDhoLS9rist6ix7' +
'Z8J8LlmWKmWDI8yi5kJkm91R9RQkP9P7Y1LcZDpmFREMTHdngWogA' +
'0M3lA0zGQDrwcs/4/j3ZfN7LHBc6kB2z3eyX8Za72/XTQWBsW9Rdd' +
'HYDdIAoWM6lypRlXWwULpF55VADNSJ0ICiBDu6PpgPUo+X8tGAvT1' +
'Wer5QP1qoP4FqtTFUaDzeUpTfp4Ha1l1eoEy4s1JqPlLJnp0rHFha' +
'OQlyg3ggdUIEMLVumDnGKqtF4eF7t0+gnXoX/cLv8xsPQQAoO6OAJ' +
'0edjOtgAHcgEKKJgx+GfMB0winCLIW1a1k8HvOFDpnAgHUgvj7Avd' +
'MCCkl4M6YCVK2Uyq7cJFTpYUDufEBg5M3vXXXdR2NAHCbIrwOFG8S' +
'jIup8O5o3zQ6UHujE6KLeXat7K4sI3W5WXwXT9dMAC4baxbX2wCFX' +
'6eX16xYI2oovpYG06QC/A97OJN83egdCBHHzzkdFBEBxgaUtHzKQD' +
'RAV1hU+i6WBGHxFCkzAmo632+ZHegdABcabUnCu7oT5T8X8KHayfD' +
'mb11i5tvYv7tDpDVnqaNO+M6SCmg3/CdEBxZTo5ynfz6IBFRCfDSj' +
'Ed3Dw6MHc3+jjQgQwWDaQDXDk6dzPoYE6fUNYzWBTTQUwHMR3EdBD' +
'TQUwHMR3EdBDTQUwH/+TpwDxMkyvX+BU/IVOQC7hWrju4pGaxb1t9' +
'iGdguLI+HJmFYJ5Nw08CY1WdzJizWFjOcsYxt4olnsPJccmsGvKCT' +
'PdPq7Nlp/Vpp5RqNkCulqW3Je1mjPOCdymrlV1qTai0QQFJkT2xQJ' +
'jTxifzeutpuYc3wX9pg2yeXPMrTR5NQ6KQG1o7EO4W1ebD9C/J3qV' +
'NcdjcFtXm9ru0RcpOfcisNBxkfEmfNks45YpmNmqGydZKvBVUYSx0' +
'8DyndpDGFbkAMiBSRsFX0uJ26hOiyYPMOz6RZMuBwoQyIoycOExvA' +
'm7IC/H809qRJlgpRGY4PMQ9UsWjkxH15z//eXjGKyI2w8e/8MPopJ' +
'RYhixAlok8NEsAH+JzeMAN4mIgzCOe8DmqGNVH9iQ8kvKYa0bXow8' +
'wBDGzZ9akGIl1xC5+iPB36VOkzao0K5FpM2uTOEzQJhXiHp8jzUzD' +
'gj6XRwhXCmFBmzbdaTiGz+hYQQzBVCdE26FPBMIksaxY0cwI2w5K7' +
'y7leM+gEBeewA/ZlqUkwi9qEiF9Rm+WzoZPxwZFpa6lD31m7bNxAU' +
'BE96O+J/8CkbhaWVggNFPRZyLv0Ocy07X0AeU0Q6JPArU6ySuEenP' +
'D6tAURy9ANlEUGEsuIHgS7fsJhV/RP72Jjk3boZLaRptI7utDzWhN' +
'yrf4PKaDmA5iOojpIKaDmA5iOojpIKaDmA5iOojpIKaDmA5iOojpI' +
'KaDmA4G0gGJIFyJpg5QkxkHOtIBb3hl1FxizFlmwfOy2o6vrNbWVV' +
'c70Ac9cDYE3oj88qEwCJ4T9mXalxPE3JyQtcANA7lR56ya55Ua5wa' +
'G3IGQc0BNdfIdZcPE/wW1ohYPdxoTTMRMNudFY9KKEkv4knW4FH62' +
'3EU1PyszYhAw4pKsloVPTnRyqazgsDzcpWaTd6kpyDnjeMrdxqSqi' +
'dsCX0gMwZCtnumc04fIswnsNJY2SyLZxhkjmxtnivfoDUsJvIQ4gj' +
'/Ja0nPfS+qA8iYEmKdsBVTDkC+SzuCHglRCoF7nBK66QSuCbC8wZW' +
'QznLYqx3vmTB6E4jmv1/4whfkLdPAf/mVMD6zw/InQJEIkCN8RbZl' +
'2u7QDv/iIeuX0518KAlgpPN6RpWT14t6kndJTebuURPlzAVewT8Bk' +
'x44jSvqAb0t6NXcO/VqcRIrfFIwuIUpgsWNgDZhn/JmksWiXseN5z' +
'Nqt2chQVF+JDoEghJgGTIxiIJXlgBiJwVLccEbJ8pZcbxn4Us29yh' +
'jgD3GJrcMfLeewWciqbAtGnYUovwwhbLEWFI7ow+NbalzWvmKPvGW' +
'+sAuNZ9O7Y5fEUMW9U6nLX3aLCeRW9qJgcrUakeVtawWFJMvqAlz9' +
'pbYSAynN3E9SrLANUGS2FjWm6NycjkwdkzlvDCRnyq3GAJRjSeAE9' +
'Jv08do4tuYDmI6iOkgpoOYDmI6iOkgpoOYDmI6iOkgpoNhdMDzETi' +
'yxL2PzM9l3Amfc9YAbxm1LDTgHnTceYlj+9yOifMFKBaO+TMjZW1t' +
'S6va62NrtVq9fL9ME+CGQ3bVCkr+IOFdCpk1xSuriUi+Uxnq4waxy' +
'L9chkD/cigGB10J4xzwJ7+wZEgiHHJc0vb8Ow0De7LAgnYybsllAu' +
'QCSuy8tvAneuzSjm/vUFbraD4yBstIZVydDUFghI2USMIs7NKG5QQ' +
'0ZoTIz9AkTLYd5hctjgPIHNVnSphyzgUwCsAImzZxj5iGD4nPkiq2' +
'UxlpJ64SeInMe/RecAgEKC0m8TvV9Ar84CERmxGRDvaopQ34EBWHb' +
'/mhoPoutd2cOfy+V5nTE3AYFD6RpDL9pGDOtpiTMkwtPFBzIDh88Y' +
'tfJPKzhHFPROVDJBIemClWH6OQG8oGY9+tl7cwIsKRlAOLi+VPMSA' +
'ccfZkpzby36kXRJgwyIgkCpn6oU7CKtutt/sjxbNeKAx36m33WAj0' +
'TwVD+JcixGIXFmOZcEqF6gQnlVihEosAO0EYCSZ9sEaYWcZOn/Nq0' +
'QHD3613VrzD2EVwQS/c2G3shShKHUNgEc2Gm8mE4MCJEqphzCAbLG' +
'n0dnXuLWc3qOxJYyeY4CHpQI7IwQ1xnhQA+BJ0whMAGp9zEoHQDTw' +
'UGCcGUgeWSVjBxtu0Ew+iZgOKOVuKeznvxpyH5ZWvyAhcgEAY50MG' +
'TmX+D0UH4MNq9b5hdODnq0FwiqVn0kE29+OpyvNW5scz5csxHcR0E' +
'NNBTAcxHXx86CDrl9zMW9bkiXzmaj8dFJHs4EA/HTj+AZ6V7Fmdcn' +
'l/Dx2k3QNOeOby4aJ/GB0BoYNC/gj+LU1NFTOXRuwd1BcWWsGRHjq' +
'o11GhhwbSQa5ySB1/c33L9MX2uYF00GgvLrSORtDBFOig9VgdPdP2' +
'4zEdxHQQ00FMB59cOjBPTHYmO/n8PuECJ+cPPBNh2K+Su0Y64Bn3V' +
'uYwzymwrGsmHfjFSuCfCkpVK30qpQ41cDLXyBo9v+x4p9j4KfddD4' +
'9Krx2O6B1Y9hHXXs6nrhXqrXr2ciZ/Wp2+FB6LiQ7H9PSDJh00Z2c' +
'zybPmkTdeEoxwtBmaqR5CoNOVR5aWnkDgQe1x85ReEodJB8XGzPXT' +
'DcorMR3EdBDTQUwHn1A6gP6fdnyBu1z6ag8XpKyrTuKDUumrVvKZa' +
'DrIKsQmHXiqX+C5F4nzAPNy+TnpHYT9gvS1tDoE2QpP2LxmJU4NCD' +
'DRyTmXrcTb/LfmX4ymg/4QcskOPs8kOq79asFeDrKXVX9hIeO/kMt' +
'2T5sFKYSnBLorQfHc7NQLEAavcLTnoPZVB+WoI9H76SAIzz77+t13' +
'/0lMBzEdxHQQ08EniA7IBbjSxCiZ3idw5yav2u4zyfG/sayr7DJ4u' +
'Wey+byclVlyL3CwSB1DECSTPwhBMn2tVDw1VTnISQQAfs7q+KX7rM' +
'Ql0kEQPFvRrlSpVEv3pbL3MsCU1SFrsCtRSKOXcQCBo6grjbbQAXo' +
'fqCOxIGId0bLI1mcdhiEMOWcTr2YaZ1Dp5VaLh1fiV61clvvp3Mri' +
'4uPEBMs9Gp4tmF0J3BUreQ73GR6mrE7AxM1csMIpAx4UjufO+G93z' +
'YSHFbI9UqQJQdxdbVGvUGOj2KW2R2PLoqEIBZKNbklv9SZgSzAR3G' +
'MIhAsOcy3phVpLykCFcbGxoNAEABfUGiXCrJARI1pQu7exDQL64AE' +
'pJ53Rg0ltpINderWRPBTjGYF9fsVN57imjJiPf4Gr+BfMiBt62KnX' +
'65EQESC/ImvQHIWgyhtER5+CNl/60pfwXAJkcTFScz2gADgRBv5Z/' +
'vgX94QmMtEutREf/RDJ9+jFVmQEPGeNMKmsaMYoOVpQq+dIXktqeR' +
'0rFI2FPpf0AitW0069SxsrkVmjkDAXnPCSdO5Shm24uUM7lglNrZA' +
'M5gXVyresWTKX1J3U42699dxuvZKOz+8yHIF6SZtX4UobJL69Qxtr' +
'LSnTPraFvcrMTHgZGSGwi8yTl1lcVAkYKT/frZdJsnzoeU6vhQSwM' +
'C48gWfI/B16hz15vkcvEtypzh+kfRHBH29baptKIWU84cJYsgDnIo' +
'ULuL6VMCV72ZEa9LRpwIFxnoyGfznx2sVANahO9VgMhG4zlqqRdxg' +
'CzTIRBRmhbGyCxyu/kiXDpANygRyRxrd0EXTg+n4u/Uuzj4BfcuID' +
'QqibeyadeSY92bEm3pS3Beeqsi+9H3l0vC9b4xfhM5+5NDX1fJj4R' +
'gNPKt5FJ3tfOnNpzVGmlGKBLuZ7F4PgAAJhOaNSMvmH1qQDSx1znw' +
'YB2cuN8kHWJpcMF0AoCsDxdqZ8ptacE34pJjvNqReI5+Ssdu3KdTp' +
'QB9p6bod8kQnZoUscjtWZa7wOWSoHR3LlQ/AWHtjq/XZq5hg9I6jd' +
's6/HdBDTQUwHMR18suiAU8Ze7h7LerrLBbhOfGCrI5JlitlKPN3TO' +
'9B0UOjq9onOVPFUwa9ZmUv/f3tnt9vGdcTxO90YFCiIAkWTBCmWIl' +
'mRUkmakihS1JcDNE16EbdxYcsp0ps+QYAaSZCkLYo8Q/OhJE0Q5CU' +
'SuzKa14isJ2Fn56eZbChVLnJRxOgcCMRytTy7ez7+v90z58yUMtNG' +
'406l2czMPRa1vxIKC4aA/KJo9Qkyu5B5VKqclDJna2uvVsv3qu13P' +
'E5xu/r4ShysydN+NonoLSddX/9dWwMEOw7agoPli3jf/dXTDan0tX' +
'u5imj49FbjdL1zq9M/rpbfyWSfJKcoTB0HjAu1excDRzmNnpnLv3f' +
'BpoUkJHeh3s1lnzpNOv0vwEFzYToe/yFwEDgIHAQOnkccqLHgYjgo' +
'e+PCglzKfec4yC786vqH/LLgoHO33mpl5k/qhbNkuExwoEYBfcv4q' +
'Lj4cWPl40qyOu2h2pTvZDIfJSP8i/J2cIXtIBm5yl88kK+VnjIeeA' +
'0OhCbrzbeXq+0k3vf803Q+sqdVP8lV3vU9tew0l/9svXHaaR9X6/f' +
'arc8zC1/K/lXVeX07mI1FvtU6bXaOOdfFVZWfNlaPW4MHQoHq3HQ0' +
'+qs0s97h4ebqlzFYFDgIHAQOfvo4gAWSCoUCLMjMf28mzt8QLf1+u' +
'lE5n0TPlByzzzIlVxYFAXdEjRdUe5MCERyo4MuepcxZsfSolP9Tq/' +
'VbCmRp+Q5jRCLjPoCjbxlPr8x/o3oudYSTOuqRT6nUTPYzzlKrfCj' +
'FKNW/XLx7OQfPOacW5CvPUsyeJ28BNu+ou3KOYSKXPZe3iVoSdlmY' +
'8kRenVrVf6zWntTWH/D+Ijg4Ono/U/qbbHTaX4xGr0/UXoxHtZF5/' +
'dq3xbNIChv7ulp2qOZaeg0d2dV11+yGaAU/GVoUEnrEWJea7piFDj' +
'EZ6GLkbY3A0jXHfWMNCuMO2cbmX44TuQJL8g2WFY8snM2u+kMbmd8' +
'5NlAwNFM0GUFGo2RD9hzpSmc5kfxLNrgGKZwXLcEd761SlbLBwYiA' +
'HM8ZObvs59pmNuRcHDlRo7mD41BX6ToZMTdjVefnIEzOyDVTRHKFO' +
'MqTbLl9Nw+BOU4EEQ51rTdSTP6suXb7KaTgOifmDQ+Lv9yUCA5Cyp' +
'LkfXUYSLVSy9g9t3XJOYXAZSCw6Dy16azH2puuUK6Zn2Dq5RROJXQ' +
'YmsMR+YR6siGl8UtLPKuQLRMDWKYt2zSSTQ1GI1XJnU7MBE8h9DQu' +
'FdVBke6qFZu73tOoRtSdX57bmt2UjI2Yn/BoxDb1Dp0n5haAfgRPK' +
'XO82w10RTOrj90JnvvMBBldi4HFHpE4NvCiKUfihAFxxo6MTdmdNk' +
'AKELBiydcXyzYBxdyZA0SADm6PdijgFKJhDkJ9JfJM/DI26hY9R35' +
'yDQ6K5fJS/iXmES3dmFarv54BRCX/tZzFZxbVi99w/XWN3SOf5eor' +
'9cqbTCLNzD+uL5/JXaRxkDyNlx7VSnfq9VcoDXk1WFh86EPxjoPq/' +
'LTVfLuvsYqk5DcGg8z8p/yrtTx9Jg5KlQ9Xcm/1e19I6RUr7/Xa77' +
'Q2N5eyn1fLP5gpVFqWv899GIq/JTUTF7PT+sppRnCgOwUHGCYYXOp' +
'oQKV6b4g9Iv0GIRTIN7+6OLJ2Tt8MHAQOAgeBg+cFB+nFBYk5uPwG' +
'7q+FEb4kIStEKH7gOCgsTOuVV7gAEfxC/qNySXBwIle4sPxwce6sX' +
'n50GQeN0iOfWMXbQVHYMTf7dtCt/xOnteBA6ihXvpeblwf7x/8JB2' +
'uCg7lTefJfyAgRvsvMn8mje3v1hIrLVV+bHYCam25u/nlbl6rRvxK' +
'3GL3hUvaUNwKBhS8lWFs599Ehx4GUYbk9mslWcNCXt4O5fzHiFG8H' +
'gYPAQeDg+cJBJvuBs6BSeYOs8GW3XHhJiJCYlW98l0zgzH59oXvFb' +
'xwHvB34/FjBQXn+rNn8DTiQPYXqKpovEt1oPEzj4GJYbG2tVHjTRX' +
'V1aXoZB9e/HUid5irHhSU55pvrh7Pqpae93n384M3gQBplyWarpv/' +
'SbwfN/Hlt5QQcSGeZAU1eSqb5rXNk1H4SOAgcBA4CB88RDir5D4qF' +
'8nL+724ydhwUCy8lR0qGxZcTa0Tx5YYFvpkZLAIHlWazsvywsfpWs' +
'/Y9DrivpsVxuIwDyge7sJQ2dpk0DtgppY2yXYkD2VOobcwoedqgLN' +
'v5wuON2idYji7jYGi+TCWr7tZWd+O1ZDRp4cmSvi9sVM8Tg2znVqd' +
'z13HQlc7Yf31gobfXun+sLn67tfWlr3UKHAQOAgeBg+cJB3pk2q+1' +
'4yCZfVoqlS1umqTrcYDmJ85Im83/PQ4kBy9/aTOJTzypuPZ9lF8OK' +
'1VeLSx90mt/+kwcyIa8EdSXz3d6f+l2fy9/G+sPhAXNznFt5e1++1' +
'1wQGeUq+r0+631B2vlr4523t9LLX0NHAQOAgeBg58+DlB7wYE7rMj' +
'n8/IpR8qGT1L6mTrQvnnzZtqXaU2TQ6FhMS5xZ40DcGZbsV6blA6R' +
'Sclws7Lhy8DTpU0TQsHwdzpQt+RoOHrOcnKEPSGL1GP7fq58fyWbD' +
'N3jqIEpqe3e6+uN41pDxPwYvtBgaEu02x0LJblpkQ5oqOSPE4Mtde' +
'/v3XPH3BpIQhloq0iWZEuURndGMbGZorc05iCdbt+8QIx19T0z8Tj' +
'40PzVIx1c7diiIUwsEiJFwRlBocvLwKZrovbeHQ5soiMdEB0+0ECE' +
'9EGkm7mg0v1FCQ90Rih6SA/dNEccY5twSBdm4ijp0EISsHNfE3myA' +
'Thk+wVNOCtAPA/Uiz6fiKqci0mVFBoEJE+5sIH6XkDGUewDc87vWY' +
'00HOq2RV0kcZgc0FUn+Vy2S5Z/sh+PEwcWfPNAZ5ZS+NQdeTLrEnG' +
'eWFRT7npis3Dx+8H90qj6Go2CahpbmMt9jWLpbhzkMGmQNFrq1GnO' +
'qanNfQs0wIRbqgMuA3efhUvFuTzKfli5q5OZwTeCLxtoLJOHgSa5O' +
'TJoNrJN26OUJBPphhzDzxHqcSr+wrZFFKWlcWFU9K45RaGnjFLzqz' +
'1ChBSRqzodmd9uW4iETUvsxMUNPivwayG/RcEQefmKgvEVkUH85Ve' +
'rGkCTA1B7D5rJsy5+J3Dm2bDIBZJQZvdBgaKih8SOYdvVmwmrPu/U' +
'meKi6pjAAQVYkW3Rc6CDeq+m0v8DDhBtFqDxAOk42NG5xBiCAweBg' +
'8BB4CBwEDgIHAQOAgeBg8BBGgcktwuwIT9hqbLkwFeGtjiYr1x83e' +
'K41S2x+M4LhIV7UlyUhpShF478ipviHuVTDgAByH5fYxxQTV1LlDy' +
'hM6lExvxpAFK5hEugsiALMiitIhne73SQdNlgSJC+NtBFu5xo1xxp' +
'wgVa1NCC7g004qS3K2CxZzEKEerbumYWdUL/ZSdSQ2/dMY+RHLNr7' +
'kMxBAwtBiWY8OXDdPOJuRJlrB6RoRPJLbsmD22lsEvKgS5idXzQ6e' +
'jyXBj/QtBQb5SZzutKyCg6Y+Pc1KEGgvTTcXYGlqHJoTr/fFEX+WI' +
'mQKgZgsbQgNTsmyfSXVt07LfM9TBkzdm5EWqBG5ScsRfIwaxKlk9G' +
'+51HnEJyBgpcNjW4p6tlsWLIfswckigHckA/j8zzqlexwwuiwSwKE' +
'0X1J4RdWwfNFW6qa1l4Kj+kRSH4tF4qdKQuN10tyZ/2P9Qlum5j4m' +
'B/6tgxL6ZAHKGmwCmlfQujyZMJtcmv0gP1aUPSbVtIfmDRTimoiS5' +
'yZyU7lD8yT6S0EMlNWinmhkP1hkoZ0pch3cAWX8sFgzw6oHxlWfSe' +
'RWXdMo+m0pF50qMvb6lXyS2LMMtz17YlN89RdNgQMa75tlsQME0iZ' +
'e5FGRuBL0CWT5AhIiY7Rdy6GkDTTaVEyXRracuiZKL5Tg2U3P+FsW' +
'DVQmci9W6NBQSSMCI0UgGIEW0R2IqFyOTRHXMw+yFO4CBwEDgIHAQ' +
'OAgeBg8BB4CBwEDgIHAQOAgeBg8BB4CBwEDgIHAQOAgeBg8BB4CBw' +
'EDgIHAQOAgfX4IAlyYg8i5Hl682bN0sa/oAZSixnk0/Zz7QlOYZpS' +
'1yeZO6ToLhxPplf6jhgmpYkWNDUuJ+sTaYYQYkUGnNEXdVZiczUU9' +
'lDlTHXFFJQ9ds2Qa5liYmmPuOUxiafUKlv6VYqyeUx68z137dJZMW' +
'U14mlLXMCj8iwQZdEtzd1iTHbCBedHWUAVeRD06V3MxGUzDmejX1d' +
'Q7qn8xgPNaZwV4NEoxV9jaS8ozMVudSRzlcEVQMLoCwl4OrkWe2kA' +
'ukyVxYZnGjUgD2bI4o8IgVeCF2NPcH2tq4DlZ6+p1MTkU2kXjaQdH' +
'JDChBwxAp1kl8hkhMNCc3EUT+j5+Zde2KTY8e24pu7QPkPLfEvdu5' +
'YKAEQBhqONIoByJCdXIzPw2Qq7EhXLrssT2wWK1xAh6k7FNux5XJ0' +
'YDEXKHwO9uvkqcYfNhDGTVsmv2uThF1dOcCfLrh+r0cuTMoWPUfGK' +
'XwHpewcpqJdy3+leRzp2nNvP5Ju69JyZP+2LcGGjH5HPJyk0cAd0f' +
'h5bOOH/mhEQQ11gigKTxlySQOLYuC9iQ16HA8eY40oTU+nDQx16im' +
'JRzue4vZ0UjTI6GqYA/YTPKVniWdOHilZFM/zp8gUaobmo1e+RzbY' +
'ww953HX3C8yrn3lyJoQBmi962NJwyaKx0IHkk0J9py9thgg+Ud/np' +
'rIuQM4lAi66zVdflYxcg4nAQeAgcBA4CBwEDgIHgYPAQeAgcBA4+H' +
'E44F+OAywIbji4jAPuPW0+QNg9upz8lpEuLpjVfwyXzeCgY6sCHQd' +
'UCssPZ3CwpUsRwQELA92scCUOfKc3G2kYmBu2ND0TB+j5RMd+EX9a' +
'/sjcu+2Yly36O5KexoH3YqRvU5dJ0hFmcOBH7qpJIo0DpNhxIFc4g' +
'wOEKI0DYOoj22QlffkyDhCQPXVERt/HHIAyMOZM16aC0jhgAB/xgQ' +
'K+QW5YJTjGcSDb0MdxwJVfjwO0aAYHbtfgh6CTfGAfgjO2Fc3U4K4' +
'ZfRwHL+jCWOwmsudKHLidyHGwZ47yOGyk62fTOOBcFBeZgAOaNIPb' +
'MzjgTrd/6LbOmxmGA/Tc65ELk1vAMOE4oCq5qdsauNNxQIuCZY6DL' +
'V0mz0W62nslUnoUO2hzHMhPbmkAU55bvJH4c4jjAMNBmtFD9U1Hf3' +
'Qc+KMRRcrtz+CABu84mJgzQIwIaRzwledMT79Q/5luf0TzwQGiBA5' +
'+noqPiV6hYDz3/jgcNDS0pSs/FgH/bJrPh/8GB2g1T+/IO9ZhThc4' +
'CBwEDgIHgYPAQeAgcBA4CBwEDgIHgYPAQeAgcBA4CBwEDgIHgYPAQ' +
'eAgcHA9DiJFihQpUqRIkSJFihQpUqRIkSJFihQpUqRIkSJFihQpUq' +
'SZ9G9Sawuz');

end;
procedure LoadVars;
begin
Drops:=['old charm','ffigy', 'rimson charm', 'reen charm', 'lue charm']

end;

Procedure XPcalc;
Begin
Exp := (Kills*266);
End;

Procedure XPhour;
Begin
XPcalc;
XPH := Round((Exp * 3600) / (GetTimeRunning / 1000));
End;

Procedure DoThePainting;
Begin
If Paint = 'Yes' then
begin
XPhour;
LoadBMP;
SMART_DrawBitmap(False, BMP, Point(0, 337));
SMART_DrawText(130, 395, UpCharsEx, '' +IntToStr(Kills)+ '', clRed);
SMART_DrawText(130, 420, UpCharsEx, '' +IntToStr(Exp)+ '', clRed);
SMART_DrawText(130, 445, UpCharsEx, ''+IntToStr(XPH)+'', clRed);
SMART_DrawText(325, 395, UpCharsEx,''+TimeRunning+' ', clRed);
SMART_DrawText(440, 420, UpCharsEx, ''+IntToStr(Charms)+'', clRed);
FreeBitmap(BMP);
end;
end;
Procedure Proggy;

begin
ClearDebug;
XPHour;
Writeln('********************************************');
Writeln('* |*/\GhoulerV4/\*| *');
Writeln('********************************************');
Writeln('*You have killed ' + IntToStr(Kills) + 'Ghouls');
Writeln('*And have Gained ' + IntToStr(Exp) + 'EXP');
Writeln('*And have Gained ' + IntToStr(XPH) + 'XP/H');
Writeln('*And have Picked up ' + IntToStr(Charms) + 'Charms');
Writeln('* Ran for ' + TimeRunning + '');
Writeln('********************************************');
end;

//Euphamism thanks, through YoHo
procedure SMART_DrawBitmapWithTextMulti(Clear: Boolean; Bitmap: Integer; BmpPlacement: TPoint; TP: TStringArray; Shadow: Boolean; TxtPlacement: TPoint; Font: string; Colour: TColor);
var
Width, Height, bmp,
I, B, H, Pic, TPH, Numb: Integer;
Offset: TPoint;
TTP: TPointArray;
ATPA: T2DPointArray;
Canvas: Integer;
Colors: TIntegerArray;
begin

if (not SMART_DebugSetup) then
SMART_SetupDebug();


TPH := High(TP);

Offset := IntToPoint(TxtPlacement.x - BmpPlacement.x, TxtPlacement.y - BmpPlacement.y);

Pic := CopyBitmap(Bitmap);

for I := 0 to TPH do
begin

TTP := LoadTextTPA(TP[i], SmallChars, H);

for B := 0 to High(TTP) do
begin

Numb := ((I + 1) * 13);

if Shadow then
try

FastSetPixel(Pic, TTP[b].x + 1 + Offset.x , TTP[b].y + Numb + 1 + Offset.y,131072);
except
end;

try

FastSetPixel(Pic, TTP[b].x + Offset.x, TTP[b].y + Numb + Offset.y, Colour);
except
end;
end;
end;
begin
GetClientDimensions(Width, Height);
Bmp := BitmapFromString(22, 24, 'meJw9lEko/VEUx5+/OQobsraTIh' +
'bm9+OZp5ANKdkrGWIlpSgbJVmIDVlQYqXIApk2Ssos8/R4Hh4yJLz' +
'/p9837yxu5957zvd8z7n3HMMwUlJSSkpKMjIy0tPTc3JysrKybDZb' +
'ZmYmWw7ZGoaRnJzMyqFuWbOzsz1bvABJS0vLy8tjm5SUZDOFrUAwR' +
'gcBS7xyc3OtViu+HAqBq4KCAhQscSkqKmpsbBwbG1teXl5bW1taWp' +
'qYmGhqaiovL1cgcRC47U+44gQcLA8ODs7Pz+12+/39/ePj4/Pz8+v' +
'rq9Pp3N/f7+zsLC4uTk1NJTruKATFHVgwS0tLx8fH8cXR5XI9PT2h' +
'vLy83N7enp6egvPw8HB0dDQ3N1dbW0u4/Px8VQMhL9aZmRnFJRz2K' +
'Hd3d+Bw+Pv7+/X1BdrHxwchZmdnYaKsVUz4dHd3X19fu0zBEdqHh4' +
'fT09NDQ0N7e3tutxvf7+/vn58f2QwODlJV6gkO7pQInoQGhBXa6+v' +
'rZBoZGent7U36b29vgLy/v6OQCyEAqaqqwp3SQYP08YKkw+HAYHV1' +
'NSwszGKx/DOFW3zdpoAgMwLxRvjyjvylzc1NEMiX9fj4mHPcfXx8L' +
'KZER0cvLi7yKHiR19XVld5oZ2enuroaGjU1NTwfFaN6gFAlPz8/X1' +
'9fouPu7+8vnNDQUPSoqCiM4QmNm5ublpYWylhXV3dycqLUwBkYGAg' +
'JCbH8iZeXF2geKHRCQwB3KLW3t0MYBP0fTgAHgXA4kgVlFBNY6YT6' +
'bG1tqdrgtLW18RxkwT9hCwG4LSwsBAcHy0XuQUFBKNomJCSQheoAb' +
'T6/Ksnb6RUQwCsqKlRGD3NtgWpubnaaQrjd3V0elM9AIsPDw8Dyi8' +
'7OzqgGa0xMTEBAAEFFBvfAwMC4uDglCwEizs/P6zeCUFlZub29zS1' +
'vDcLl5SV5tba2xsbGRkREhIeHx8fHd3R04IWNyogN6YNAc4EADk3H' +
'OUwuLi4+Pz9Flf+8sbFBjpQa2uCr6VD6+/vpJs/ESExMLCsrGx0d5' +
'ZZc9GfUYqz4UjS7KSj8/KmpKRrZMEUIkGGlEXp7ewmnxmSFDy3pMA' +
'UcNc7IyAh9JBe1FQpNChT9jtLQ0LCysqLorEocYUtSXV1dJK55qEG' +
'niWo1hXMQNBXr6+t7enroqcnJSV6qr6+Pj1dYWIgLlpqTMhYZrphy' +
'nINMCPFhOKvImrGeeYixxjg2oqEOxUtjExxuxUfhsAEfe2a4nk+Tm' +
'Vsp/wHgCRiF');

SetArrayLength(ATPA, Length(TP));
for I := 0 to High(ATPA) do
begin
ATPA[i] := LoadTextTPA(TP[i], UpChars, H);
for B := 0 to High(ATPA[i]) do
ATPA[i][B].y := ATPA[i][B].y + i*(H);
end;
if Length(Colour) = 4 then
begin
SetArrayLength(Colors, Length(TP));
for i := 0 to High(Colors) do
Colors[i] := Colour;[1]
end else
Colors := Colours;

DrawATPABitmapEx(bmp, ATPA, Colors);
// Canvas := TCANVAS.Create;
// Canvas.Handle := SmartGetDebugDC;
// DrawBitmap(Pic, Canvas, BmpPlacement.x, BmpPlacement.y);
Canvas := CreateBitmap(Width, Height); //Creates a bitmap using the client's dimensions.
SetPersistentMemoryBitmap(Canvas, SmartDebugArray, Width, Height); //Essentially Makes Our Bitmap Point To Smart's Debug Canvas.
FastDrawTransparent(Placement.X, Placement.Y, BMP, Canvas); //Draw Our Bitmap On Smart's Canvas at the specified Position.
ResetPersistentMemoryBitmap(Canvas); //Reset The Canvas Bitmap to point to NULL data. AKA Nothing. Prevents leaks.

FreeBitmap(Canvas); //Free Our Canvas Bitmap.
FreeBitmap(bmp);
end;


//credits to Flight for helping with this.
Function FindGhoul(Var X,Y: Integer): Boolean;
var
CTS,I,T,J: Integer;
TPA,T1,T2: TPointArray;
Box:TBox;
PBox: TPointArray;
ATPA:T2DPointArray;

begin
MarkTime(J);
repeat
Result := False;
CTS := GetColorToleranceSpeed;
PBox := TPAFromBox(IntToBox(240, 130, 290, 190));

ColorToleranceSpeed(2);

SetColorSpeed2Modifiers(0.20, 1.60);

FindColorsSpiralTolerance(MSCX, MSCY, T1,(11652298), MSX1, MSY1, MSX2, MSY2, 3);
FindColorsSpiralTolerance(MSCX, MSCY, T2,(11652298), MSX1, MSY1, MSX2, MSY2, 8);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
TPA := CombineTPA(T1,T2);
ATPA := TPAtoATPAEx(TPA,30,30);
SortATPAFrom(ATPA,Point(257,157));

For i := 0 to High(ATPA) do
begin
if (Length(TPA) < 1) then
Exit;
Box := GetATPABounds(ATPA);
SMART_DrawDotsEx(false, TPA, 65320);
MiddleTPAEx(ATPA[i],X,Y);
MMouse(X,Y,5,5);

if WaitUpText('ck Gho', 50) then
begin
GetMousePos(X, Y);
ClickMouse2(True);
Result := True;
SMART_ClearCanvasArea(Box);
Exit;
end else
Result := False;
end;
Until (TimeFromMark(J) > 3500);
End;
Function FindObjOnScreen(Up,Option:Array of String;Color,Tolerance1,Tolerance2:Integer;MC2:Variant;Hmod,Smod:Extended): Boolean;
var
X,Y:Integer;
CTS,I,T,J: Integer;
Box:TBox;
TPA,T1,T2,Pbox: TPointArray;
ATPA:T2DPointArray;

begin
MarkTime(J);
repeat
Result := False;
CTS := GetColorToleranceSpeed;
PBox := TPAFromBox(IntToBox(245, 135, 280, 185));

ColorToleranceSpeed(2);

SetColorSpeed2Modifiers(Hmod,Smod);

FindColorsSpiralTolerance(MSCX, MSCY, T1,(Color), MSX1, MSY1, MSX2, MSY2, Tolerance1);
FindColorsSpiralTolerance(MSCX, MSCY, T2,(Color), MSX1, MSY1, MSX2, MSY2, Tolerance2);
ColorToleranceSpeed(CTS);
TPA := ClearTPAFromTPA(TPA, PBox);
TPA := CombineTPA(T1,T2);
ATPA := TPAtoATPAEx(TPA,20,20);
SortATPAFrom(ATPA,Point(257,157));

For i := 0 to High(ATPA) do
begin
if (Length(TPA) < 1) then
Exit;
Box := GetATPABounds(ATPA);
SMART_DrawBoxEx(False,IntToBox(Box.X1,Box.Y1,Box.X2,Box.Y2),65320);
SMART_DrawDotsEx(false, TPA, 65320);
MiddleTPAEx(ATPA[i],X,Y);
MMouse(X,Y,5,5);
if WaitUpTextMulti(Up, 400) then
begin
GetMousePos(X, Y);
ClickMouse2(MC2);
ChooseOptionMulti(Option);
SMART_ClearCanvasArea(Box);
Result := True;
Exit;
end;
end;
Until (TimeFromMark(J) > 3500);
End;

Function PickupCharms:Boolean;
Var
X, Y: Integer;
begin
If Charmer = False then Exit;
If Charmer = True then
begin
FindNormalRandoms;
If FindObjOnScreen(['ake', 'Take', 'ke', 'ak'],['harm'],6397359,4,8,False,0.38,0.55) Then
Begin
Wait(500);
writeln('You have found the some Charms!');
While IsMoving do
Wait(50);
FindNormalRandoms;
Wait(RandomRange(300,400));
Inc(Charms);
End;
end;
end;

procedure GetOutF;
begin
case random(2) of
0 : begin
KeyDown(VK_Tab);
wait(35+random(100));

wait(35+random(100));
KeyUp(VK_Tab);
wait(25+random(70));

wait(35+random(100));
end;
1 : begin
ExamineInv;
end;
end;
end;

procedure GMoveMouse;
begin
case random(4) of
0 : begin
mMouse(5,25,10,20);
end;
1 : begin
mMouse(250,150,40,40);
end;
2 : begin
mMouse(505,350,50,50);
end;
3 : begin
mMouse(30,315,20,40);
end;
end;
end;
//laakes
Procedure RAntiBan;
begin
Wait(randomrange(200,400));
case random(RandAmount) of
0 : begin
writeln('Random Wait AntiBan');
Wait(randomrange(1100,2500));
end;
1 : begin
GAntiBan;
end;
2 : begin
writeln('pickup mouse / GMoveMouse');
PickUpMouse;
Wait(randomrange(25,100));
GMoveMouse;
Wait(randomrange(250,300));
end;
3 : begin
writeln('Double GMoveMouse');
GMoveMouse;
Wait(randomrange(45,100));
GMoveMouse;
end;
end;
end;
//laake's
Procedure KillGhouls;
var
sX,sY,X,Y,J: Integer;
begin
Repeat
If FindGhoul(X,Y) then
Wait(1950);
Until UInFight or InFight;
If FindBlackChatMessage('omeone else is fighting') then begin
RandomThing;
GetOutF;
End;
If UInFight or Infight then
WriteLn('You are Ghouling this Ghoul!');
Inc(Kills);
begin
repeat
Proggy;
DoThePainting;
FindNormalRandoms;
Eat('Eat');
RAntiBan;
until (not UInFight) or (not OthersInFight) or (not LoggedIn)
end;
wait(randomrange(200,300));
end;

Procedure PickScroll;
Begin
If ChampionScroll = False then Exit;
If ChampionScroll = True then
Begin
FindObjOnScreen(['ake', 'Take', 'ke', 'ak'],['croll'],9621212,4,9,False,0.02,3.25);
End;
end;
Procedure PickEffigy;
Begin
If Effigy = 'No' then Exit;
If Effigy = 'Yes' then
Begin
FindObjOnScreen(['ake', 'Take', 'ke', 'ak'],['ffigy'],8290940,1,3,False,1.73,0.01);
End;
end;

begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
SetupChar;
LoadVars;
DoThePainting;
repeat
MarkTime(Z);
Repeat
Wait(500);
DoThePainting;
FindObjOnScreen(['Bank', 'ank', 'ooth'],['ank'],7567226,1,3,True,1.59,0.48);
Until DidRedClick or (TimeFromMark(Z) > 2500);
If DidRedClick then
repeat
Wait(50);
until BankScreen;
begin
Proggy;
DepositAll;
wait(50 + Random(250));
Proggy;
Withdraw(0, 0, 28);
wait(50 + Random(250));
Proggy;
Deposit(1,1,false);
wait(50 + Random(250));
Proggy;
CloseBank;
end;
ToGhouls;
repeat
DoThePainting;
Proggy;
KillGhouls;
DothePainting;
PickupCharms;
DoThePainting;
PickEffigy;
DoThePainting;
PickScroll;
DoThePainting;
until (hppercent<50);
ToBank;
DoThePainting;
Proggy;
FindNormalRandoms;
until not LoggedIn
writeln('stopping script');
Proggy;
TerminateScript;
end.


I'm stuck here with an error ";" on line 1121
i attempted to follow brandons manual graphics draw fix but got caught up here, any suggestions on whats wrong? Thank you in advance

speedster

2012-07-28 15:21:38

From: [J]ustin
Just checked my processes.. You are right.



That's quite annoying me as well… If you find a solution on how to close those instances share please :rolleyes:

iiNveRsioN

2012-07-28 15:27:20

From: speedster
That's quite annoying me as well… If you find a solution on how to close those instances share please :rolleyes:


Download 'KillProcess'

Allows you to kill multiple processes instantly instead of going through task manager one by one.

almosthere

2012-07-28 16:05:01

I was going to try the official fix but i got an error and gave up. Ill keep using the patch fix for a couple of months until the admins get all this mess sorted out. I'm definitely not going to spend 4 hours+ searching around the forums just to update a simple fix.

Karpov

2012-07-28 16:48:01

From: speedster
That's quite annoying me as well… If you find a solution on how to close those instances share please :rolleyes:


If you're using Windows, you should be able to run the built-in command: -

taskkill.exe /im smartremote32.exe /f

Stick the above command in a .bat file and then call it from within Simba before a new SMART session starts. Example: -

procedure RestartSMART();
begin
FreeSRL;
SmartKillClient(SmartCurrentClient);
Wait(5000);
OpenWebpage('PATH TO YOUR BAT FILE');
Wait(5000);
SetupSRL;
...
end;

This will kill any existing smartremote32.exe processes before the new SMART is started.

PotentPK

2012-07-28 17:00:07

SRL Compiled in 0 msec
** Fatal Error: Pairing Clients; Terminating Script **
Successfully executed.


I've legit tried everything.. I compiled the files using MinGW and copied them over. I've tried the ghetto quick fix. Reinstalled multiple times.

Leonardo Da Vinci

2012-07-28 17:22:11

Anyone able to share any script that works?
I'm not fussy, I just feel like botting… Since none of the scripts I want to use are working…

Silent

2012-07-28 17:23:33

From: runing low
thanks for all your help silent spy, I'm having a issue where i make it to the rs log in screen but it doesn't type user pass in, also there's no debug window so i'm not sure what the error is

do i jus log in manually or what?


make sure you are on fixed screen size, some people had this switch on them for some reason.

From: Law and Justice
Anyone able to share any script that works?
I'm not fussy, I just feel like botting… Since none of the scripts I want to use are working…


My Spinner works :redface: You could give that a try.

Leonardo Da Vinci

2012-07-28 17:30:49

From: Silent SPY

My Spinner works :redface: You could give that a try.


Thanks buddy, I will do!
Hmmm… I didn't know that ObjectDTM was working again…

Silent

2012-07-28 17:36:09

From: Law and Justice
Thanks buddy, I will do!
Hmmm… I didn't know that ObjectDTM was working again…


Yep, it didn't really need any changes, though I do think euphemism updated it. Just make sure you have the latest version and it should work perfectly.

Leonardo Da Vinci

2012-07-28 17:43:23

From: Silent SPY
Yep, it didn't really need any changes, though I do think euphemism updated it. Just make sure you have the latest version and it should work perfectly.


God, it's so painless! It works perfectly, THANK YOU!

Silent

2012-07-28 17:46:30

From: Law and Justice
God, it's so painless! It works perfectly, THANK YOU!


ahaha. Good to know I'm not the only one it works for. Make sure you leave a proggy on the actual thread ;).

Most scripts around here will need a little tweaking before they will work again, but it really shouldn't be that much work for the original scripter who made them… Like max of 5-10 lines of change.

runing low

2012-07-28 20:30:09

From: Silent SPY
make sure you are on fixed screen size, some people had this switch on them for some reason.



My Spinner works :redface: You could give that a try.



I'm on fixed and still having the issue whee it doesn't even try to type in user pass

I'm using aligndude's private script make thats the problem? also having dtm and bitmap errors but that doesn't stop it from loading rs

haven't seen aligndude on skype at all

Silent

2012-07-29 05:03:04

From: runing low
I'm on fixed and still having the issue whee it doesn't even try to type in user pass

I'm using aligndude's private script make thats the problem? also having dtm and bitmap errors but that doesn't stop it from loading rs

haven't seen aligndude on skype at all


Unless it uses a custom login function it shouldn't matter. Are your colors all at the highest setting possible?

runing low

2012-07-29 07:27:27

From: Silent SPY
Unless it uses a custom login function it shouldn't matter. Are your colors all at the highest setting possible?


i actually can't find color settings on rs? or did you mean my monitor? or simba?

idk I'm confused so i added your msn, it's still not working though

my msn is [email]jadfailz@hotmail.com[/email]

btw heres simba debug

Compiled successfully in 889 ms.
SRL Compiled in 0 msec
Paired with SMART[6124]
Loading SMART: http://world3.runescape.com/f4642642543204426725
Error: Exception: Access violation at line 2493
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap, 4, 5]

raees

2012-07-29 13:02:58

From: PotentPK
I've legit tried everything.. I compiled the files using MinGW and copied them over. I've tried the ghetto quick fix. Reinstalled multiple times.



i got people to help me with this problem, ive honestly tried every thing possible but its just our luck that our computer doesnt allow SMART to work on it:(

blinkblink

2012-07-29 13:25:28

From: raees
i got people to help me with this problem, ive honestly tried every thing possible but its just our luck that our computer doesnt allow SMART to work on it:(


what happens to you? Smart doesn't load? If so, you could try this.. in your Simba folder go to your Smart.exe right-click and go to properties, then start testing each compatibility mode, till one of them works.

If nothing then… no idea - go to Task manager and check no other simba.exe, smartremote32.exe or java's are running(if you are already running something else that uses java - don't kill it).. end task to each one and then try simba again

Another idea, try installing simba on a new folder.. then enable the correct *Extensions and update everything as it should be done.. that should work.
If anything then Compiling Smart(maybe you did a step wrong by mistake)

blah ran out of ideas… last resort option is using Team Viewer and I try to fix it for you

raees

2012-07-29 14:25:46

ive tried every thing, gonna ave resort to last option, ive pm'd you

raees

2012-07-29 16:24:07

my problem has been sorted out…i just needed a more up to date script…not all scripts works for me though(that are upto date with the new plug ins)

thanks to blinkblink for his efforts to trying to get my smart to work:)

Leonardo Da Vinci

2012-07-29 17:45:54

This will be the last time I post this, I feel as if this must be really annoying… But any chance of someone being able to help me with this one?

program ChaosMossKiller;
{$i srl/srl/misc/smart.simba}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$i srl/srl/misc/debug.simba}
{$i srl/srl/misc/paintsmart.simba}
const
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//========================ChaosMossKiller by hunt3rx3=======================v6.0
//READ THESE CAREFULLY!===================================================19 May
//*YOU MUST SET UP XP COUNTER FOR TRAINED LEVEL, OTHERWISE SCRIPT WONT WORK!====
//*FOOD:========================================================================
// -ONLY EATS LOBSTERS AND PEACHES=============================================
// -DONT USE B2P WITH BONECRUSHER! COMMON SENSE================================
//*CHARM LOOTING:===============================================================
// -WILL PICK UP CHARMS WHAT YOU CAN SEE WITH YOUR EYES!=======================
// -WONT RIGHT CLICK ALL THE LOOT PILES!=======================================
// -HAVE 1+ OF EACH AT START!==================================================
//*SPECIAL ATTACKS:=============================================================
// -ONLY PRIMARY WORN WEAPONS, WONT SWITCH WEAPONS!============================
// -KORASI NOT SUPPORTED! WOULD MESS UP THE SCRIPT!============================
//==============================================================================
SRLStats_User = ''; // Your SRL Stats ID (If you dont have one then just leave it as it is)
SRLStats_Password = ''; // Your SRL Stats Password (If you dont have one then just leave it as it is)

Username = '';
Password = '';

TrainedSkill = 'Strength'; // Attack, Strength, Defence, Range
XPCounter = 2; // 1,2,3
EatAt = 700; // 100-999

BonesToPeaches = True;
PickUpCharms = True;

UseSpecAttacks = False; // Only worn weapons. Not supported: Korasi.
SpecUsage = 55; // Spec usage of worn weapon. Supported: 25, 50, 55, 60, 100

PaintStatus = True; // set Private Chat off for this
PaintDebug = True;

TakeScreenShots = True; // (~100 kb jpeg, wont eat memory)
ScreenShotsPath = 'C:\Simba\Screenshots\ChaosMossKiller\';


DebugWindow = False;
DebugLines = False;
//==============================================================================
//===========UPDATES: [url]http://villavu.com/forum/showthread.php?t=74029===========[/url]
//==============================================================================
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Version = 'v6.0';


var
X, Y: Integer;
StartTime, StartXp, StartXPtillNext, TrainedLevel, HpLevel : Integer;
WorldHops, B2PUsed, FoodUsed, GoldCharms, GreenCharms, BlueCharms, CrimsonCharms : Integer;
SpecWait, SpecTime, SpecNumber : Integer;
LastXP : Extended;
LevelString : String;
doreport, b2p : Boolean;



procedure DeclarePlayers;
begin
NumberOfPlayers(1);
CurrentPlayer := 0;
with Players[0] do
begin
Name := UserName;
Pass := Password;
Active := True;
end;
end;



procedure MakeScreenShot(const FilePath : String); //example: 'C:\Simba\Screenshots\ChaosMossKiller\levelups'
var
fileName : String;
Year, Month, Day : Word;
i : Integer;
begin
if TakeScreenShots then
begin
if not DirectoryExists(ScreenShotsPath) then
CreateDirectory(ScreenShotsPath);
if not DirectoryExists(FilePath) then
CreateDirectory(FilePath);
DecodeDate(Date,Year,Month,Day);
i := 0;
repeat
i := i+1;
FileName := ToStr(Year) + '-' + ToStr(Month) + '-' + ToStr(Day) + ' (' + IntToStr(i) + ').jpg';
until not FileExists(FilePath + FileName)
SaveScreenShot(FilePath + FileName); //example: 2012-3-21 (1).jpg
end;
end;



procedure OpenDebugWindow(TPA: TPointArray; ATPA: array Of TPointArray; PaintBox: Boolean; Box: TBox); //box is for the dying Moss giant
var
BMP, x,y, i, Color : Integer;
TPABox: TBox;
begin
BMP := BitmapFromClient(0,0,MSX2,MSY2); //making a bitmap, adding the mainscreen image to it
DrawTPABitmap(BMP,TPA,clRed); //adding TPA to the bitmap

for i := 0 to high(ATPA) do
begin
if i = 0 then
Color := clYellow
else
Color := clBlack;

TPABox := getTPABounds(ATPA[i]); //getting the box of the TPA
for x := TPABox.x1 to TPABox.x2 do
begin
FastSetPixel(BMP, x, TPABox.y1, Color) //drawing lines
FastSetPixel(BMP, x, TPABox.y2, Color) //drawing lines
end;
for y := TPABox.y1 to TPABox.y2 do
begin
FastSetPixel(BMP, TPABox.x1, y, Color) //drawing lines
FastSetPixel(BMP, TPABox.x2, y, Color) //drawing lines
end;
end;

if PaintBox then //this is for the dying Moss giant
begin
for x := Box.x1 to Box.x2 do
begin
FastSetPixel(BMP, x, Box.y1, ClRed) //drawing lines
FastSetPixel(BMP, x, Box.y2, ClRed) //drawing lines
end;
for y := Box.y1 to Box.y2 do
begin
FastSetPixel(BMP, Box.x1, y, ClRed) //drawing lines
FastSetPixel(BMP, Box.x2, y, ClRed) //drawing lines
end;
end;
DebugBitmap(BMP);
FreeBitmap(BMP);
end;



function CurrentTime: string; //function for time, example [17:53:59]
var
Hour, Mins, Sec, MSec: Word;
begin
DecodeTime(Now, Hour, Mins, Sec, MSec);
Result := ('['+Padz(IntToStr(Hour), 2) + ':' + Padz(IntToStr(Mins), 2) + ':' + Padz(IntToStr(Sec), 2)+'] ');
end;



procedure EndScript(Reason : String); //function for ending, message box will pop up
begin
MakeScreenShot(ScreenShotsPath + 'stops\');
Disguise('Stopped');
Writeln(CurrentTime + Reason);
MessageBox(CurrentTime + Reason,'ChaosMossKiller',0); //message box as warning
TerminateScript;
end;



procedure StatusWithPaint(What : String); //Painting status on SMART
begin
Status(What);
if PaintStatus then
begin
SMART_ClearCanvasArea(IntToBox(MSX1,320,MSX2,343));
SMART_DrawTextEx(False,8,322,SmallChars,What,ClWhite); //drawing the text
end;
end;



procedure Report;
var
XP, XPHour, PrayXP, XPtillNext, TimeRun : Extended; //i have no clue why, but integer with Round() wont work
done : Boolean;
fails : Integer;
begin
if not DoReport then Exit;
fails := 0;
done := True;
repeat //reading XPCounter for xp gained
if (fails = 5) then
begin
Writeln(CurrentTime+'Failed to read XPBar. Turning off Reports.');
DoReport := False;
Exit;
end;
XP := GetXPBar(XPCounter)-StartXP;
if (XP + StartXP = -1) then //if fails to read xpbar it gives -1
begin
done := False;
fails := fails+1;
end;
until done

TimeRun := TimeFromMark(StartTime);
PrayXP := Round(XP / 240 * 15);
XPHour := Round(XP * (3600000 / TimeRun));
XPtillNext := StartXPtillNext - XP + LastXP; //LastXP = 0 untill we get a levelup

if (XPtillNext < 0) then //levelup check
begin
fails := 0;
done := True;
repeat //getting new level and xp till next
if (fails = 5) then
begin
Writeln(CurrentTime + 'Failed to get level/XPs. Turning off Reporting.');
DoReport := False;
Exit;
end;
TrainedLevel := GetSkillLevel(TrainedSkill);
if (TrainedLevel = -1) then //if fails to get level it gives -1
begin
done := False;
fails := fails+1;
end;
StartXPtillNext := XPTillNextLevel(TrainedSkill);
if (StartXPtillNext = -1) then //if fails to read xp it gives -1
begin
done := False;
fails := fails+1;
end;
until done

XPtillNext := StartXPtillNext;
LastXP := Round(XP); //we store the 'xp gained till now' (round is needed cause extended and integer)
MakeScreenShot(ScreenShotsPath + 'levelups\'); //this will make a screenshot of our levelup:)
Wait(RandomRange(3000,5000));
end;

ClearDebug;
Disguise('ChaosMossKiller [' + FloatToStr(XPHour) + ']');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' ChaosMossKiller ' + Version);
WriteLn(' * Time Running: ' + MsToTime(Round(TimeRun),Time_Formal));
WriteLn(' * ' + LevelString + ' XP Gained: ' + FloatToStr(XP) + ' (' + FloatToStr(XPHour) + ')');
Writeln(' * ' + LevelString + ' Level: ' + IntToStr(TrainedLevel) + ', XP till next: ' + FloatToStr(XPtillNext));
Writeln(' * B2P: ' + IntToStr(B2PUsed) + ' Food: ' + IntToStr(FoodUsed))
if PickUpCharms then
Writeln(' * Charms: ' + IntToStr(GoldCharms) + '/' + IntToStr(GreenCharms) + '/' + IntToStr(BlueCharms) + '/' + IntToStr(CrimsonCharms))
else
Writeln(' * Not picking up charms.');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;



procedure Antiban; //basic antibans
begin
case Random(2400) of
1..2:
begin
StatusWithPaint('Checking trained level.');
TrainedLevel := GetSkillLevel(TrainedSkill);
HoverSkill(TrainedSkill,false);
Wait(RandomRange(1000,3000));
GameTab(tab_Inv);
StatusWithPaint('Back to fighting.');
end;
3..4:
begin
StatusWithPaint('Checking hp level.');
TrainedLevel := GetSkillLevel(TrainedSkill);
HoverSkill(SKILL_HITPOINTS,false);
Wait(RandomRange(1000,3000));
GameTab(tab_Inv);
StatusWithPaint('Back to fighting.');
end;
5..6:
begin
StatusWithPaint('Checking random level.');
TrainedLevel := GetSkillLevel(TrainedSkill);
HoverSkill('random',false);
Wait(RandomRange(1000,3000));
GameTab(tab_Inv);
StatusWithPaint('Back to fighting.');
end;
7..8: PickUpMouse;
9..14: CompassMovement(-180,180,false);
180..460: SleepAndMoveMouse(RandomRange(300,1200));
end;
end;



function BreakB2P : Boolean;
var
TabDTM : Integer;
fails : Integer;
done : Boolean;
begin
TabDTM := DTMFromString('78DA633CC4C4C070899101194CEEED65F802148289326E03AA398BAA868181894184014DCD0D026AF602D53C20A0E614116A2E01D55C2742CD79FC6A00BDB80E80');
if not (GetCurrentTab = tab_Inv) then
GameTab(tab_Inv);
Wait(RandomRange(200,400));
fails := 0;
done := False;
repeat
if FindDTM(TabDTM,X,Y,MIX1,MIY1,MIX2,MIY2) then
begin
Mouse(X,Y,5,5,mouse_left); //clickig on B2P tab
Inc(B2PUsed);
Wait(RandomRange(6000,8000)); //it takes long to break it
Result := True;
done := True;
end else
begin
if not (GetCurrentTab = tab_Inv) then //sometimes it fails to switch tabs for the first time
GameTab(tab_Inv);
fails := fails+1;
end;
if (fails = 5) then //trying to find DTM 5 times max
begin
Result := False;
done := True;
end;
until done
FreeDTM(TabDTM);
end;



function EatFood(var foodDTMString : String): boolean;
var
FoodDTM, EatTime, CurrentHP, fails : Integer;
done : Boolean;
colorstring : String; //this is for a return value, not using it
begin
FoodDTM := DTMFromString(foodDTMString);
if not (GetCurrentTab = tab_Inv) then
GameTab(tab_Inv);
Wait(RandomRange(200,400));

fails := 0;
done := False;
repeat
if FindDTM(FoodDTM,X,Y,MIX1,MIY1,MIX2,MIY2) then
begin
CurrentHP := GetMMLevels('hp', colorstring);
MarkTime(eatTime);
repeat
MultiMouse(X,Y,80,2,true);
Wait(RandomRange(400,800));
if ( GetMMLevels('hp', colorstring) > (CurrentHP + 30) ) then //checking if HP is increased
begin
Inc(FoodUsed);
done := True;
Result := True;
end;
if (TimeFromMark(eatTime) > 10000) then
begin
Result := False;
done := True;
end;
until done
end
else
begin
if not (GetCurrentTab = tab_Inv) then //sometimes it fails to switch tabs for the first time
GameTab(tab_Inv);
fails := fails+1;
Wait(500);
end;

if (fails = 5) then //trying to find DTM max 5 times
begin
Result := False;
done := True;
end;
until done
FreeDTM(FoodDTM);
end;



function ChooseOptionCharms(What : String) : Boolean; //modified SRL function, this will loot charms if possible
var
B: TBox;
i, H, x: Integer;
T: TPoint;
Options: Array of TOptions;
begin
Result := False;
Options := GetChooseOptions('action');
if (Length(Options) < 1) then
Exit;
H := High(Options);

for i := 0 to H do
begin
if PickUpCharms then //if charms looting is enabled
begin
if Pos('ake Gold', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Gold charm!');
Inc(GoldCharms);
Report;
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;

if Pos('ake Green', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Green charm!');
Inc(GreenCharms);
Report;
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;

if Pos('ake Blue', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Blue charm!');
Inc(BlueCharms);
Report;
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;

if Pos('ake Crims', Options[i].Str) > 0 Then
begin
StatusWithPaint('Found a Crimson charm!');
Report;
Inc(CrimsonCharms);
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;
end;

if Pos(What, Options[i].Str) > 0 Then //this will check for 'attack' or 'take bones' (nowhere else using ChooseOptionCharms)
begin
Result := True;
B := Options[i].Bounds;
GetMousePos(T.x, T.y);
if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Exit;
end;
end;

B := Options[0].BigBox; //to mmouse away
x := Max(B.X1 - 52, 0);
if x = 0 then
x := B.X2+10;
MMouse(x, Max(B.Y1 - 50, 0), 40, B.Y2-B.Y1);
Wait(200 + Random(100));
end;



function FindMoss(ClickOnIt: Boolean) : Boolean; //returns true only if clicked on a Moss giant
var
RedX, RedY, ExcX, ExcY, i, MinPoints, DetectTime, UptextTime, RedHpBarDTMTime, RedHpBarDTM : Integer;
TPA, MossTPA : TPointArray;
ATPA : Array of TPointArray;
MossColors, Tolerances : Array of Integer;
ExcludeNearRedHpBar : Boolean;
begin
Result := False;
MarkTime(DetectTime);
//6257521 (8) portal színe, tökéletes
//2173227 (5) nincs már sötét fal (eddig 7 jó volt)
//2372406 (8) nincs már (12 volt) nagyon kicsi barna fából
//2309694 (7) nincs nagyon nagyon kicsi barna fából
//3303025 (14) sárgásbarna, tökéletes
//4482405 (13)
MossColors := [6257521, 2173227, 2372406, 2309694, 3303025, 4482405];
Tolerances := [8, 5, 8, 7, 15, 13];
MinPoints := 200;

for i:=0 to High(MossColors) do
begin
FindColorsTolerance(MossTPA,MossColors[i],MSX1,MSY1,MSX2,MSY2,Tolerances[i]);
AppendTPA(TPA,MossTPA);
end;

ExcludeNearRedHpBar := False;
RedHpBarDTM := DTMFromString('mWAAAAHicY2FgYNgCxOeh+AIQRwFxOBDHQtk7GTgYrNmZ4FgEKIaMGdEwCAAAoEoGcA==');
if WaitFindDTMex(RedHpBarDTM,X,Y,MSX1,MSY1,MSX2,MSY2,10,100) then //if found redbar then we will exclude points around it
begin
ExcludeNearRedHpBar := True;
RedX := X;
RedY := Y+50;
ExcX := 35;
ExcY := 60;
end;
FreeDTM(RedHpBarDTM);

if (High(TPA)> 0) then
begin

if ExcludeNearRedHpBar then //excluding near RedHpBar
begin
SortTPAFrom(TPA,Point(redX,redY));
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - RedX) < ExcX) and (Abs(TPA[i].y - RedY) < ExcY) then
Break;
SetArrayLength(TPA,i);
end;

SortTPAFrom(TPA,Point(MSCX,MSCY)); //excluding points near middle
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - MSCX) < 25) and (Abs(TPA[i].y - MSCY) < 25) then
Break;
SetArrayLength(TPA,i);

ATPA := SplitTPA(TPA,10); //splitting TPAs

SortATPASize(ATPA,True); //excluding TPAs with less than MinPoints points
for i:=0 to High(ATPA) do
begin
if High(ATPA[i]) < MinPoints then
Break;
end;
if i = 0 then Inc(i);
SetArrayLength(ATPA,i);

SortATPAFromFirstPoint(ATPA,Point(MSCX,MSCY)); //making the closest TPA the first in the array


if DebugWindow then //DebugWindow
OpenDebugWindow(TPA,ATPA,true,IntToBox(RedX-ExcX,RedY-ExcY,RedX+ExcX,RedY+ExcY));

if High(ATPA[0]) < MinPoints then //to avoid errors
Exit;


if ClickOnIt then
begin
if MiddleTPAEx(ATPA[0],X,Y) then //getting the middle point of the TPA, moving mouse there then looking for uptext
begin
MMouse(X,Y,0,0);
MarkTime(UptextTime);
if WaitUpText('ttack',200) then
begin
if DebugLines then //DebugLines
Writeln('Found Moss in ' + IntToStr(TimeFromMark(DetectTime)) + ' ms. Uptext was ' + IntToStr(TimeFromMark(UptextTime)) + ' ms.');
case Random(6) of //random left or rigth click (5:1)
0..4:
begin
ClickMouse2(mouse_left);
if DidRedClick then
Result := True; //returns true = clicked on moss
Exit;
end;
5:
begin
ClickMouse2(mouse_right);
if ChooseOption('ttack') then
Result := True; //returns true = clicked on moss
Exit;
end;
end;
end else
if DebugLines then //DebugLines
Writeln('Found Moss in ' + IntToStr(TimeFromMark(DetectTime)) + ' ms, but failed to find UpText.');
end;
end; //PaintDebug: clearing the drawings on SMART
end;
end;



function FindBones(X1,X2,X3,X4: Integer) : Boolean; //returns true if uptext is 'Take'
var
TPA : TPointArray;
ATPA : Array of TPointArray;
i : Integer;
MinPoints, xmid, ymid : Integer;
begin
MinPoints := 50;
FindColorsTolerance(TPA,11975103,X1,X2,X3,X4,25);

SortTPAFrom(TPA,Point(MSCX,MSCY)); //excluding points near middle
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - MSCX) < 20) and (Abs(TPA[i].y - MSCY) < 25) then
Break;
SetArrayLength(TPA,i);

if (High(TPA)> 0) then
begin

ATPA := SplitTPA(TPA,10); //splitting the TPA

SortATPASize(ATPA,True); //excluding TPAs with less than MinPoints points
for i:=0 to High(ATPA) do
begin
if High(ATPA[i]) < MinPoints then
Break;
end;
if i = 0 then Inc(i);
SetArrayLength(ATPA,i);

if DebugWindow then //DebugWindow
OpenDebugWindow(TPA,ATPA,false,IntToBox(0,0,0,0));

if (High(ATPA[0]) < MinPoints) then //to avoid errors
Exit;

if MiddleTPAEx(ATPA[0],xmid,ymid) then //getting the middle point of the TPA, moving mouse there then looking for uptext
begin
MMouse(xmid,ymid,0,0);
Wait(100);
if IsUpTextEx('ake') then
begin
Result := True; //returning true
GetMousePos(X,Y);
Exit;
end;
end;
end;
Result := False;

end;



function FindCharm(Which: String; Colors, Tolerances: TIntegerArray; MinPoints: Integer) : Boolean; //returns true if uptext is 'Take'
var
TPA, CharmTPA : TPointArray;
ATPA : Array of TPointArray;
i : Integer;
xmid, ymid : Integer;
begin
for i:=0 to High(Colors) do
begin
FindColorsTolerance(CharmTPA,Colors[i],MSX1,MSY1,MSX2,MSY2,Tolerances[i]);
if DebugLines then //DebugLines
if (High(CharmTPA) > 0) then
Writeln('[Charms] Found ' + IntToStr(High(CharmTPA)) + ' pixels for Color: ' +IntToStr(Colors[i]) + '. Tolerance is: ' + IntToStr(Tolerances[i]));
AppendTPA(TPA,CharmTPA);
end;

SortTPAFrom(TPA,Point(MSCX,MSCY)); //excluding poinst near middle
InvertTPA(TPA);
for i:=0 to High(TPA) do
if (Abs(TPA[i].x - MSCX) < 30) and (Abs(TPA[i].y - MSCY) < 30) then
Break;
SetArrayLength(TPA,i);


if (High(TPA)> 0) then
begin
ATPA := SplitTPA(TPA,15); //splitting the TPA

SortATPASize(ATPA,True);

if High(ATPA[0]) < MinPoints then //getting only the biggest TPA (it everything is fine, this function wont find any extra pixels)
Exit;

if DebugWindow then //DebugWindow
OpenDebugWindow(TPA,ATPA,false,IntToBox(0,0,0,0));

if MiddleTPAEx(ATPA[0],xmid,ymid) then //getting the middle of the TPA, moving mouse there then looking for uptext
begin
MMouse(xmid,ymid,0,0);
Wait(100);
if PaintDebug then
SMART_ClearCanvasArea(IntToBox(MSX1,MSY1,MSX2,MSY2));
if IsUpTextEx('ake') then
begin
Result := True; //returning true
GetMousePos(X,Y);
Exit;
end;
end;
end;
Result := False;
end;



procedure FindAllCharms; //this will call the FindCharm() for all the charms with the given parameters
var
Colors, Tolerances : Array of Integer;
begin
if PickUpCharms then //if charms enabled
begin
StatusWithPaint('Looking for charms.');

Colors := [5804446,5935011,5344659,5735582,5472916];
Tolerances := [10,10,10,10,10];
if FindCharm('Gold',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Gold') then
begin
StatusWithPaint('Picking up gold charm.');
Inc(GoldCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

Colors := [5010263,6982265,5471587,5730659];
Tolerances := [10,5,5,4];
if FindCharm('Green',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Green') then
begin
StatusWithPaint('Picking up green charm.');
Inc(GreenCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

Colors := [6183977,8552249];
Tolerances := [10,10];
if FindCharm('Blue',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Blue') then
begin
StatusWithPaint('Picking up blue charm.');
Inc(BlueCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

Colors := [3295859,2567297,3290481];
Tolerances := [8,8,10];
if FindCharm('Crimson',Colors,Tolerances,1) then
begin
Mouse(X,Y,0,0,mouse_right);
if ChooseOption('ake Crims') then
begin
StatusWithPaint('Picking up crimson charm.');
Inc(CrimsonCharms);
Report;
Wait(1000);
repeat until not IsMoving
Wait(500);
end;
end;

end;
end;



function WaitInFight(Timeout: Integer) : Boolean; //waits until Timeout or till we get into a fight (will return true in this case)
var
X,Y,XP1,XP2,ShieldDTM,Time : Integer;
begin
XP1 := GetXPBar(XPCounter);
MarkTime(Time);
ShieldDTM := DTMFromString('mQwAAAHicY2ZgYGBlYWAQAmIOIJZmZGCQAmJ1IGax9mT4+/cvA9eCJwxcQHUwzIiEgQAAxXEFvA==');
repeat
XP2 := GetXPBar(XPCounter);
if (XP2 > XP1) then
begin
if DebugLines then
Writeln('XP is increased, we are fighting.');
if PaintDebug then
begin
SMART_DrawBoxEx(false,IntToBox(524,54,543,73),ClYellow);
Wait(100);
SMART_ClearCanvasArea(IntToBox(520,50,547,77));
end;
Result := True;
FreeDTM(ShieldDTM);
Exit;
end;
if (TimeFromMark(Time) > 3000) and FindDTM(ShieldDTM,X,Y,MSX1,MSY1,MSX2,MSY2) then //if xp is increased or shield dtm found (3000 seconds is for not the detect the blue shield of the previous fight)
begin
if DebugLines then
Writeln('Blue shield found, we are fighting.');
Result := True;
FreeDTM(ShieldDTM);
Exit;
end;
until (TimeFromMark(Time) > Timeout)
FreeDTM(ShieldDTM);
Result := False;
end;



function FindRedBar : Boolean;
var
X,Y,RedBarDTM : Integer;
begin
Result := False;
RedBarDTM := DTMFromString('mlwAAAHicY2dgYDBnZmCQBWIZKB0ExQpA3AiUr2OA0C1QDOPvZOBgsGZnwsBdDIwM+AAjHgwFAAvPB5w=');
if FindDTM(RedBarDTM,X,Y,MSX1,MSY1,MSX2,MSY2) then
begin
if DebugLines then
Writeln('Found redbar, we killed it.');
if PaintDebug then
begin
SMART_DrawBoxEx(false,IntToBox(X-30,Y-10,X+30,Y+10),ClYellow); //drawing box around the redbar
Wait(100);
SMART_ClearCanvasArea(IntToBox(MSX1,MSY1,MSX2,MSY2));
end;
Result := True;
end;
FreeDTM(RedBarDTM);
end;



procedure HopWorld;
var
FailTime : Integer;
begin
StatusWithPaint('Hopping.');
Inc(WorldHops);

MarkTime(FailTime);
repeat
ExitToLobby;
if TimeFromMark(FailTime) > 30000 then //sometimes RS crashes when going to lobby (black screen)
EndScript('Failed to exit to lobby when hopping.');
until LobbyScreen;

OpenWorldScreen;
SelectWorld(RandomWorld(true,false)); //member world, not pvp

MarkTime(FailTime);
repeat
LoginPlayer;
if TimeFromMark(FailTime) > 60000 then //sometimes RS crashes at login (black screen)
EndScript('Failed to login after hopping.');
until LoggedIn

Wait(RandomRange(500,6000));
ToggleXPBar(true);
SetAngle(SRL_ANGLE_HIGH);
end;



procedure WalkToCenter; //simple SPS walking to center (will improve in the future)
begin
StatusWithPaint('Walking to center.');
SPS_WalkToPos(Point(335, 374)); //no need randomness, because its not accurate
end;



procedure SpecialAttack;
var
X,Y,DTM100,DTM75,DTM60,DTM55,DTM50,DTM25,i,FailTime : Integer;
begin
if UseSpecAttacks and ((TimeFromMark(SpecTime) > SpecWait) or (SpecNumber > 0)) then //will enter if specials are turned on AND (if its time to check for special OR we have remaining specials to do)
begin
StatusWithPaint('Checking special attack.');
DTM100 := DTMFromString('mWAAAAHicY2FgYHBgYmCwB+IjULyQkYFhHRAvAOI1QFyzIo9BSl+EwT/XkiGi2oGBC6gHGTOiYRAAAPnmCNY='); //DTMS for 100%,75% ... special bars
DTM75 := DTMFromString('mQwAAAHicY2ZgYLBnguAFIMzIwLAWiJcBsXOyIYOmpwJDep83AxdQHQwzImEgAAD6tQXo');
DTM60 := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+IuIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAooAdH');
DTM55 := DTMFromString('mQwAAAHicY2ZgYGhmgeDjQCzNxMCgCcSyQOycbMggpS/CMOFIPQMXUB0MMyJhIAAA5cgFbA==');
DTM50 := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+JaIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAl1Qc6');
DTM25 := DTMFromString('mQwAAAHicY2ZgYHBgYmCwB+IoIF7EyMCwhhFCt2wuZTDyUmWYcKSegQuoDoYZkTAQAAAeUAcX');
SpecNumber := 0;
MarkTime(FailTime);
repeat
if (TimeFromMark(FailTime) > 5000) then Exit; //if failed to switch tabs, then it exits
GameTab(tab_Combat);
until (GetCurrentTab = tab_Combat)
SpecNumber := 0; //no matter if we have remaining specials to do, we will set it to 0 and determine it again
case SpecUsage of //determining how many specials we can do
100:
if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
60:
if FindDTM(DTM60,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
55:
if FindDTM(DTM55,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
50:
begin
if FindDTM(DTM50,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 2;
end;
25:
begin
if FindDTM(DTM25,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 1;
if FindDTM(DTM50,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 2;
if FindDTM(DTM75,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 3;
if FindDTM(DTM100,X,Y,MIX1,MIY1,MIX2,MIY2) then
SpecNumber := 4;
end;
end;
MarkTime(SpecTime);
SpecWait := RandomRange(15000,60000); //next spec check in 15-60 seconds
if SpecNumber > 0 then //if we can spec
begin
StatusWithPaint('Using special attack.');
MouseBox(574,416,706,428,mouse_left);
Dec(SpecNumber);
end else //it cant do spec
begin
StatusWithPaint('Not enough special.');
Wait(RandomRange(500,4000));
StatusWithPaint('Back to fighting.');
MarkTime(FailTime);
repeat
if (TimeFromMark(FailTime) > 5000) then Exit;
GameTab(tab_Inv);
until (GetCurrentTab = tab_Inv)
end;
FreeDTM(DTM100);
FreeDTM(DTM75);
FreeDTM(DTM60);
FreeDTM(DTM55);
FreeDTM(DTM50);
FreeDTM(DTM25);
end;
end;



procedure LoginCheck;
begin
if not LoggedIn then
begin
StatusWithPaint('Logging in.');
if not LoginPlayer then
EndScript('We got logged out somehow and cant log in.');
end;
end;



procedure HpCheck;
var
colorstring, lobs, peaches : String;
FailTime, Amount : Integer;
done : Boolean;
begin
if (GetMMLevels('hp', colorstring) < EatAt) then
begin
MarkTime(FailTime);
repeat
if not b2p then //if not using B2P yet then we eat a simple food (lobster)
begin
StatusWithPaint('Eating lobster.');
Amount := 120; //healing amount for lobster
lobs := 'mggAAAHicY2NgYPjPxMDAzczAwMcMYX8E4p9ALMbIwMAKxNxArMAI4fMC8f4EGaAuJgwsAiSxYUYcGAIAcgoGSA==';
if not EatFood(lobs) then
begin //if out of food
if not BonesToPeaches then //if not using B2P, then we log out
EndScript('Out of food.')
else
b2p := True; //lets start using B2P
end;
end;
if b2p then
begin
StatusWithPaint('Eating peaches.');
Amount := 80; //healing amount for peach
peaches := '78DA632C60626070626440069B3B52194480344C94310FA8C60C550D030313AA9A32A01A0B026A6A806A1C08A8A906AA7127A006E4663F026A52883007A4C69E809A4CC2FE0200D76708C1'
if not EatFood(peaches) then //if out of peaches
begin
StatusWithPaint('Breaking B2P.');
if not BreakB2P then //if out of tablets
EndScript('Out of B2P tablets.');
if not EatFood(peaches) then //if broke tablet but cant eat peaches
EndScript('Failed to eat peaches after broking B2P.');
end;
end;
if (GetMMLevels('hp', colorstring) > (HpLevel * 10 - Amount)) or (TimeFromMark(FailTime) > 30000) then //if we no need to eat more (current hp > (maxhp - healamout)) (30 seconds timeout for fail safe)
done := True;
until done
end;
end;



procedure NoobCheck;
begin
if Length(GetMinimapDotsin('player',592,49,662,120)) > 0 then
begin
StatusWithPaint('Found a noob, waiting.');
MakeScreenShot('C:\Simba\Screenshots\ChaosMossKiller\noobs\');
Wait(RandomRange(5000,10000));
HopWorld;
end;
end;



function BonesCheck : Boolean;
var
LookedForBones : Integer;
begin
Result := False;
if BonesToPeaches then
begin //if using B2P then we need to collect bones
if not InvFull then
begin
LookedForBones := 0;
repeat
if FindBones(MSX1,MSY1,MSX2,MSY2) then
begin
StatusWithPaint('Picking up bones.');
Mouse(X,Y,0,0,mouse_right);
ChooseOptionCharms('ake Big');
Wait(1000);
repeat until not IsMoving
Result := True;
end;
Inc(LookedForBones);
until (InvFull) or (LookedForBones = 5) //looking for bones max 5 times (failsafe)
end;
end;
end;



procedure RandomsCheck;
begin
if FindNormalRandoms then
EndScript('Random event found!');
end;



procedure AmmoCheck; //function for Ranging
var
i : Integer;
done : Boolean;
begin
if LevelString = 'RNG' then
if FindChatBoxText('You have no ammo',8,ClBlack) then //ammo check
begin
StatusWithPaint('Out of ammo.');
Wait(1000);
if srl_inFight then
begin
StatusWithPaint('Still fighting, removing weapon.');
repeat until GameTab(tab_Inv)
if InvFull then
begin
i := 5;
done := False;
repeat
MMouseItem(i);
if IsUpTextMultiCustom(['Bury','ury','Eat','at']) then
begin
ClickMouse2(mouse_right);
if ChooseOptionMulti(['Drop','rop']) then
done := True;
end;
Inc(i);
until done
end;
repeat until GameTab(tab_Equip);
MouseBox(573,294,594,311,mouse_left);
StatusWithPaint('Removed weapon.');
EndScript('Out of ammo.');
end;

end;
end;



procedure SetupScript;
begin
ClearDebug;
Disguise('ChaosMossKiller');
Status('Starting script.');
Smart_Server := 10;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
ActivateClient;
DeclarePlayers;
SetupSRLStats(680, SRLStats_User, SRLStats_Password);
SPS_Setup(RUNESCAPE_OTHER,['chaos_tunnels']);
if PaintDebug then
SMART_ClearCanvas;
Status('Logging in.');
LoginPlayer;
end;



procedure Startup;
var
fails, FailTime : Integer;
done : Boolean;
begin
if srl_inFight then
begin
StatusWithPaint('Waiting till fight is over.');
repeat until not srl_InFight
end;

fails := 0;
done := True;
MarkTime(FailTime);
repeat
ToggleXPBar(True);
TrainedLevel := GetSkillLevel(TrainedSkill);
if (TrainedLevel = -1) then
begin
done := False;
fails := fails+1;
end;
HpLevel := GetSkillLevel('Hitpoints');
if (HpLevel = -1) then
begin
done := False;
fails := fails+1;
end;
StartXPtillNext := XPTillNextLevel(TrainedSkill);
if (StartXPtillNext = -1) then
begin
done := False;
fails := fails+1;
end;
StartXP := GetXPBar(XPCounter);
if (StartXP = -1) then
begin
done := False;
fails := fails+1;
end;
if (fails = 3) or (TimeFromMark(FailTime) > 30000) then
EndScript('Startup fail. Cant get level/read xps.');
until done

case TrainedSkill of
'Attack' : LevelString := 'ATK';
'Strength' : LevelString := 'STR';
'Defence' : LevelString := 'DEF';
'Range' : LevelString := 'RNG';
end;

case DebugLines of
true: doreport := False;
false: doreport := True;
end;

b2p := False;
LastXP := 0;
WorldHops := 0;
B2PUsed := 0;
FoodUsed := 0;
GoldCharms := 0;
GreenCharms := 0;
BlueCharms := 0;
CrimsonCharms := 0;

if UseSpecAttacks then
begin
SpecNumber := 0;
SpecWait := RandomRange(15000,45000);
MarkTime(SpecTime);
end;

ClearDebug;
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' ChaosMossKiller ' + Version);
WriteLn(' - HP level : ' + IntToStr(HpLevel));
Writeln(' - ' + LevelString + ' level : ' + IntToStr(TrainedLevel));
Writeln(' - XP till next : ' + IntToStr(StartXPtillNext));
Writeln(' - XP Bar : ' + IntToStr(StartXP));
WriteLn(' - Starting script...');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');

MarkTime(StartTime);
SetAngle(SRL_ANGLE_HIGH);
end;



procedure Main;
var
DetectTime, KillTime : Integer;
done : Boolean;
begin
repeat

StatusWithPaint('Looking for Mosses.');
done := False;
MarkTime(DetectTime);
repeat
if (TimeFromMark(DetectTime) > 180000) then //180 seconds failsafe
EndScript('Cant find Mosses.');
if FindMoss(true) then //if clicked on moss
begin
if WaitInFight(4000) then //checking if we are fighting
done:=True
end else
begin //if failed to attack moss
StatusWithPaint(IntToStr(TimeFromMark(DetectTime))+'ms');
case Random(20) of
0: CompassMovement(-120,120,false); //rotating camera for better view
end;
LoginCheck;
RandomsCheck;
if (TimeFromMark(DetectTime) > 10000) then //walking back to middle
WalkToCenter;
end;
until done //we are fighting now


StatusWithPaint('Fighting.');
MarkTime(KillTime);
repeat
Antiban;
AmmoCheck;
if (TimeFromMark(KillTime) < 5000) then //we dont want to waste special attack, so we only using it in the first 5 seconds
SpecialAttack;
if ((TimeFromMark(KillTime) > 5000) and (FindRedBar)) then //we are looking for redbar after 5 seconds of fighting
Break; //end of fight
Wait(500);
until ((TimeFromMark(KillTime) > 10000) and (not srl_inFight)) //failsafe is: 10 seconds and no hpbar above the player -> end of fight


StatusWithPaint('Killed Moss. Took '+MsToTime(TimeFromMark(KillTime),Time_Formal)+'.');
Report;
stats_Commit; //committing stats (no variebles yet, only time)
BonesCheck; //this will look for bones if needed and pickst them up
FindAllCharms; //this will look for charms and picks them up
LoginCheck;
NoobCheck; //this will look for other players around
HpCheck; //this will check hp and eat (use b2p) if needed

until False
end;



begin

SetupScript;
Startup;
Main;

end.

Destined2bGreat

2012-07-29 19:57:34

Could anyone help me with this one?

program W100S_EM;
{*******************************************************************************
W100S-EM - World 100 Shantay Chest Bonfires Er1k's Mod
author; CephaXz
modded; Er1k
Description: World 100 Shantay Chest Bonfire trainer

1.2 changelog
- Added SRL Stats
- Added more FindNormalRandoms for better random detection
- Minor additions to the object finders, showing colors count/ no detection
- Script turns assists to off for you, set chat to game at start
*******************************************************************************}
{$define SMART}
{$define USESPS}
//{$define USEODTM} //you must only enable either ODTM or SPS

{.include srl/srl/misc/smart.simba}
{.include srl/srl.simba}

{$IFDEF USEODTM}
{.include ObjectDTM\ObjDTMInclude.simba}
{$ELSE}
{.include srl/srl/misc/paintsmart.simba}
{$ENDIF}

{$IFDEF USESPS}
{.include sps/sps.simba} //now used again
{$ENDIF}

const
ODTM_WALK = '81:91:4:9:7:39:60:9:7:30:81:9:7:91:95:9:7:99:74';
ODTM_AREA = '81:91:4:9:7:39:60:9:7:30:81:9:7:91:95:9:7:99:74:7:56:47:82:47:96:73:85:102:56:102:48:91:48:55';

var
Stats, Logs, CollectedRewards, StartingXP: Integer;

const
version = '1.2';
SRLStats_Username = '';
SRLStats_Password = '';

{Which slot in bank is your log is?}
LOGS_BANKSLOT = 1;
{How many ms to timeout for re-adding, change if you're LOW LEVEL}
FM_TIMEOUT = 10000;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
Players[0].Pin := '';
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
Players[0].WorldInfo := [False, 100]; //thanks olly
end;

procedure SetupLogin;
begin
ClearDebug;
Smart_Server := 10;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
if (SRLStats_Username = '') then
SetupSRLStats(1155, 'Anonymous', 'anon1337')
else
SetupSRLStats(1155, SRLStats_Username, SRLStats_Password);
DeclarePlayers;

if not LoggedIn then
begin
repeat
LoginPlayerToLob;
until LobbyScreen;

OpenWorldScreen;
if not WorldScreen then
OpenWorldScreen;
if WorldScreen then
begin
writeln('picking world 100');
SelectWorld(100);
LogInPlayer;
end;
end;

while not LoggedIn do
wait(500);

if LoggedIn then
begin
ClickNorth(SRL_ANGLE_HIGH);
ExitSquealOfFortune();
if not IsXPBarOpen then
ToggleXPBar(True);
StartingXP := GetXPBarTotal;
SetChat('off', CHAT_ASSIST); //turn off your assist so that you wont complain
SetChat('off', CHAT_PUBLIC);
Mouse(90 + (CHAT_GAME * 55), 496, 8, 3, mouse_left); //click game tab
end;
end;

Procedure StartDTM;
begin
Logs := DTMFromString('mwQAAAHic42RgYHBiYmCwZoLQ3kDsA8SBULYLVO4pUN0dIL4NxDeA+CEQPwPiN0D8Dog/ArGJngCQZMKL/zMQBoxEYDgAAI5rDB0=');
end;

Procedure EndDTM;
begin
FreeDTM(Logs);
end;

Function FindInvLogs: Boolean; //Modified by Er1k
var x, y: integer;
begin
Result := FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2);
end;

Function NotFindInvLogs: Boolean;
var x, y: integer;
begin
Result := not FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2);
end;

Function FoundInvLogs: Boolean;
var x, y: integer;
begin
if FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MouseItem(CoordsToItem(x, y), mouse_move);
Result := True;
end;
end;

function OpeningBank: boolean; //Modified by Er1k
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;

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

if WaitFunc(@BankScreen, 100, 5000) then
begin
if not InvEmpty then DepositAll;
writeln('Withdrawing logs');

//Keep inventory slot
while GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10) = 0 do
begin
wait(100+random(50));
if not LoggedIn then Exit; //didn't expect this to fail actually, but it did
end;
writeln('amount of logs: ' + IntToStr(GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10)));
if GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10) < 29 then //sorry guys
begin
writeln('Not enough logs - Logout');
Logout;
TerminateScript;
end;

MouseBankSlot(LOGS_BANKSLOT, mouse_Right);
result:= WaitOption('All', 1000);
if result then
result:= CloseBank;
end;
end;

Function RewardsCollected :Boolean; //Unused
begin
Result := IsChatBoxTextAnyLine('spirit', clBlack);
end;

Function FindSpirit :Boolean; //Modified by Er1k
var
a: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS : Integer;
begin
result:=false;
if(not(LoggedIn))then Exit;
FindNormalRandoms;

tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);

// Original colors
// SetColorSpeed2Modifiers(0.52, 0.55);
// if FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4021133, 202, 129, 325, 230, 14) then

SetColorSpeed2Modifiers(0.19, 0.75);
if FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3825566, 202, 129, 325, 230, 12) then
begin
writeln('color count: ' + InttoStr(length(tpa)));
if Length(TPA) < 20 then //modded
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end else
begin
writeln('OMG SPIRIT?');
end;
end;

ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPAFromSize(ATPA, 1000, true);

for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
{$IFDEF SMART}
SMART_DrawDotsEx(false, ATPA[a], clYellow);
{$ENDIF}
Mouse(MP.X, MP.Y, 2, 2, mouse_move);
if WaitUpText('spiri', 500) then //using Uptext detection instead of just right-click
begin
ClickMouse2(mouse_right);
// Mouse(MP.X, MP.Y, 2, 2, mouse_Right);
if WaitOption('ollect', 3000) then
begin
WaitFunc(@RewardsCollected, 10, 3000);
writeln('Collect rewards');
writeln('Back to BonBon');
Result := True;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
Break;
end;
end;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

function BankScreenEx: boolean; //New
begin
result:= BankScreen or PinScreen;
end;

function FindShantayChest: boolean; //New
var a, tmpCTS, Tries: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
begin
result:=false;
if not LoggedIn then Exit;
if BankScreenEx then
begin
result:=true;
Exit;
end;
FindNormalRandoms;

tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.07, 0.12);

if FindColorsSpiralTolerance(MSCX, MSCY, tpa, 6451582, MSX1, MSY1, MSX2, MSY2, 7) then
begin
writeln('shantay chest tpa count: ' + IntToStr(length(tpa)));
ATPA:= TPAtoATPAEx(tpa, 25, 25);
for a:=0 to high(atpa) do
begin
{$IFDEF SMART}
SMART_DrawDotsEx(false, ATPA[a], clYellow);
{$ENDIF}
MP:= MiddleTPA(atpa[a]);
Mouse(mp.x, mp.y, 4, 4, mouse_move);
if WaitUpTextMulti(['pen S', 'antay','tay c', 'hest'], 500) then
begin
ClickMouse2(mouse_left);
if WaitFunc(@DidRedClick, 50, 1000) then
begin
writeln('Clicked Bank chest');
if WaitFunc(@BankScreenEx, 100, 5000) then
begin
writeln('BankScreenEx found');
result:= true;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
break;
end;
end;
end;
end;
end
else writeln('Shantay chest not found...');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

procedure AntiBan;
var r: Integer;
begin
if not LoggedIn then Exit;
r := (RandomRange(1, 14));
if (r = 4) then
begin
writeln('Doing antiban');
case Random(20) of
0, 3: PickUpMouse;
1: RandomRClick;
2:
begin
HoverSkill('firemaking', false);
GameTab(tab_Inv);
end;
4: MMouse(MIX1, MIY1, MIX2, MIY2);
5: MMouse(MMX1, MMY1, MMX2, MMY2);
end;
end;
end;

function AddingScreen :Boolean;
begin
Result := CountColorTolerance(4543066, 17, 355, 484, 456, 2) > 2000;
end;

function BonBon: boolean; //Modified by Er1k
begin
result:=false;
if not LoggedIn then Exit;
if not (getCurrentTab = tab_Inv) then
FTab(tab_Inv);

if WaitFunc(@FoundInvLogs, 200, 5000) then
begin
ClickMouse2(mouse_Left);
if WaitFunc(@AddingScreen, 200, 5000) then
begin
writeln('Found add to bonfire screen');
MouseBox(323, 411, 389, 448, mouse_Left);
writeln('BONBONBONBON-ing');
result:= true;
end;
end;
end;

procedure XPTotalFinding;
var
XPGained: Integer;
begin
XPGained := GetXPBar(1);
writeln('EXP Gained' + IntToStr(XPGained));
end;

Procedure DrawTheBox;
var
XPBOX: TBox;
begin
XPBOX := IntToBox(375, 7, 421, 21);
SMART_DrawBox(XPBOX);
end;

procedure PlayerStats;
var
Wet, Wst, Cst, Srt, Tih, Tim, Tis, Awt, Sec, sst, EndingXP, XPGained: Integer;
begin
Cst := GetSystemTime;
Srt := (cst - sst) / 1000;
Tih := srt / 3600;
tim := (srt / 60) - tih * 60;
Tis := srt - tim * 60 - tih * 3600;
Awt := wet - wst
Sec := GetTimeRunning div 1000 + 1;
EndingXP := GetXPBarTotal;
XPGained := EndingXP - StartingXP;
Writeln('#######################################################');
Writeln(' Shantay Bank Chest Bonfire ');
Writeln('#######################################################');
Writeln('Logs / Hour : ' + IntToStr(Round(3600 * Players[CurrentPlayer].Integers[3] / Sec)));
Writeln('Logs Done : ' + IntToStr(Players[CurrentPlayer].Integers[3]));
Writeln('Fire Spirit : ' + IntToStr(CollectedRewards));
writeln('EXP Gained : ' + IntToStr(XPGained));
writeln('EXP / Hour : ' + IntToStr(Round(3600 * XPGained / Sec)));
Writeln('Running for : ' + TimeRunning);
Writeln('-------------------------------------------------------');

//SRL stats
if (TimeFromMark(Stats) > 360000) then // 6 minutes.
begin
Stats_Commit;
MarkTime(Stats);
end;
end;

function LogsDecreased(start: integer): boolean; //New
begin
result:= CountItems('dtm', logs, []) < start;
end;

function InShantayPassTPA: boolean;
var tpa: TPointArray;
begin
result:= false;
SetColorToleranceSpeed(1);
if FindMMColorsSpiralTolerance(tpa, 2248829, 25) then //rock brown
begin
writeln('tpa count: '+ IntToStr(length(tpa)));
result:= length(tpa) >= 850;
end;
writeln('InShantayPassTPA: ' + booltostr(result));
end;

function AdjustPositionTPA: boolean;
var x, y: integer;
tpa: TPointArray;
begin
result:= false;
if not InShantayPassTPA then Exit; //
SetColorToleranceSpeed(1);
if FindMMColorsSpiralTolerance(tpa, 2413294, 25) then //bank symbol
begin
writeln('tpa count: '+ IntToStr(length(tpa)));
MiddleTPAEx(tpa, x, y);
Mouse(x, y, 3, 3, mouse_left);
wait(1000+random(250));
while IsMoving do
wait(100+random(50));
result:= true;
end;
writeln('AdjustPositionTPA: ' + booltostr(result));
end;

//odtm main point
//'84:84:3:9:7:49:39:9:7:31:56:9:7:36:80'

//odtm area
//'80:80:3:9:7:49:39:9:7:31:56:9:7:36:80:8:58:40:77:40:92:53:92:83:76:96:61:96:51:81:51:46'

{$IFDEF USEODTM}
function InShantayPass: boolean; //New
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;
result:= ObjDTM_InArea(ODTM_AREA, true);
end;

function AdjustPosition: boolean; //New
var odtm: string;
cx, cy: integer;
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;
odtm:=ODTM_WALK;
if ObjDTM_Find(odtm, cx, cy, True) then
begin
result:= true;
Writeln('We found it, now lets walk it!');
ObjDTM_Walk(odtm, 2, 200, 10, True);
end else
Writeln('We could not walk here, what a shame');
if result then
FFlag(2);
end;
{$ENDIF}
{$IFDEF USESPS}
function InShantayPass: boolean;
var p: TPoint;
begin
result:= false;
FindNormalRandoms;
if not InShantayPassTPA then Exit;
p:= SPS_GetMyPos;
writeln('Acquiring position...');
writeln('SPS located: ' + format('%d %d', [p.x, p.y]));
if (p.x <= -1) and (p.y <= -1) then Exit; //lost
result:= (Distance(p.x, p.y, 5065, 4185) <= 75);
writeln('InShantayPass: ' + booltostr(result));
end;

function AdjustPosition: boolean; //New
var p: TPoint;
begin
result:= false;
FindNormalRandoms;
if not InShantayPass then
begin
writeln('Cannot adjust as we''re not in Shantay Pass');
writeln('AdjustPosition: ' + booltostr(result));
Exit;
end;
p:= SPS_GetMyPos();
writeln('Adjusting position...');
writeln('SPS located: ' + format('%d %d', [p.x, p.y]));
result:= SPS_WalkPath([Point(5060, 4185)]);
writeln('AdjustPosition: ' + booltostr(result));
end;
{$ENDIF}

function CheckWorld100: boolean;
var cw: integer;
begin
result:=false;
FindNormalRandoms;
cw:= CurrentWorld;
writeln('current world is: ' + IntToStr(cw));
if (cw<>100) then
begin
writeln('world switch required');
result:= ChangeWorld(100);
writeln('world switch success: ' + booltostr(result));
end
else result:= true;
end;

procedure MainLoop; //New
var action: string;
t, t2, t3, ts, start, fail, fail2, fail3: integer;
check, redo: boolean;
v: TVariantArray;
begin
action:= 'bank';
while LoggedIn do
begin
FindNormalRandoms;
writeln('Current action is: ' + action);
if fail > 0 then
writeln('fail: ' + IntToStr(fail));
if (fail >= 5) then
begin
writeln('banking failed consecutively...');
writeln('checking our position...');
FindNormalRandoms;
if InShantayPass then
action:='walk'
else
action:='lode';
end;
if (fail3 >= 3) then //verify if we''re in world 100
begin
writeln('failed to add to bonfires for quite a bit...');
writeln('verifying if we''re on world 100 at all...');
FindNormalRandoms;
if not CheckWorld100 then
begin
Logout; //finish the script and hope SMARTManager/CrashSMART restarts it
TerminateScript;
end
else fail3:= 0; //continue, we''re just having very bad luck
end;
case action of
'bank': begin
if FindShantayChest then
begin
if OpeningBank then
begin
WaitFunc(@FindInvLogs, 200, 2000);
action:= 'burn';
fail:= 0;
end;
end
else Inc(fail);
end;
'burn': begin
redo:= true;
check:=true;
if (CountItems('dtm', Logs, []) = 0) then
begin
action:='bank';
continue;
end;
if Bonbon then
begin
start:= CountItems('dtm', Logs, []);
writeln('starting logs: ' + IntToStr(start));
v:= [start];

//use first log adding as heuristic, does not work for low levels
//because low levels might have large delays in adding first log to bonfire
if not WaitFuncEx('LogsDecreased', v, 500, 5000) then
begin
writeln('Guessing no bonfires nearby, relocate!');
AdjustPosition;
Inc(fail2); //silent updated

//Maybe try to find fire here later??
//todo
//if you insist you want to make your own fires
//add code here, but i aint doing this for your safety

if (fail2 >= 2) then //force banking to relocate
begin
writeln('position adjusting doesnt seem to work...');
writeln('will try to find bank chest to relocate...');
action:='bank';
fail2:= 0;
Inc(fail3);
end;
continue;
end;
fail2:=0;

MarkTime(t);
MarkTime(t2);
MarkTIme(t3);
repeat
FindNormalRandoms;
// writeln('current logs: ' + IntToStr(CountItems('dtm', Logs, [])));

//find fire spirit, thanks Ashaman88 for the tips
if IsChatBoxTextAnyLine('emerges', 397249) and (InvCount<24) and check then
// if (FindChatBoxText('emerges',8,397249{clRed})) and (InvCount<24) then
begin
writeln('Spirit is around!');
if FindSpirit then
begin
check:= false; //dont scan after we have collected rewards
Inc(CollectedRewards);
break;
end;
end;

//update and continue
if LogsDecreased(start) then
begin
start:= CountItems('dtm', Logs, []);
MarkTime(t);
end;

//No update in FM_TIMEOUT ms, force redo
if (TimeFromMark(t) > FM_TIMEOUT) and not LogsDecreased(start) then
begin
writeln('Logs stopped burning - will reburn');
break;
end;

wait(250+random(250));
until (CountItems('dtm', Logs, []) = 0) or (TimeFromMark(t2) > 120000);

//Decide action
if (CountItems('dtm', Logs, []) = 0) then
begin
IncEx(Players[CurrentPlayer].Integers[3], 28);
redo:= false;
PlayerStats;
end;
if not redo then
action:= 'bank';
end;
end;
'walk': begin
if AdjustPosition then
begin
action:='bank';
fail:= 0;
end;
end;
'lode': begin
FindNormalRandoms;
writeln('If you get this chances are you''ve failed a random!');
writeln('Or you''ve got a random but SRL failed to detect it');
writeln('TODO - logout and terminate');
Logout;
TerminateScript;
end;
end;
wait(100+random(50));
end;
end;

procedure DebugLocations; //Acid test on location finders
begin
InShantayPass;
AdjustPosition;
end;

begin
SetupLogin;
{$IFDEF USEODTM}
ObjDTM_Setup; //req'd for ODTM usage
ObjDTM_Debug := True;
{$ENDIF}
{$IFDEF USESPS}
SPS_SETUP(RUNESCAPE_SURFACE,['12_10']);
{$ENDIF}
SMART_ClearCanvas;
AddOnTerminate('EndDTM');
StartDTM;
// UseFindMod := false; //uncomment if you don't want mods to mess up
// DebugLocations; //uncomment if you need debug
MainLoop;

end.

runing low

2012-07-29 20:07:37

From: Destined2bGreat
Could anyone help me with this one?

program W100S_EM;
{*******************************************************************************
W100S-EM - World 100 Shantay Chest Bonfires Er1k's Mod
author; CephaXz
modded; Er1k
Description: World 100 Shantay Chest Bonfire trainer

1.2 changelog
- Added SRL Stats
- Added more FindNormalRandoms for better random detection
- Minor additions to the object finders, showing colors count/ no detection
- Script turns assists to off for you, set chat to game at start
*******************************************************************************}
{$define SMART}
{$define USESPS}
//{$define USEODTM} //you must only enable either ODTM or SPS

{.include srl/srl/misc/smart.simba}
{.include srl/srl.simba}

{$IFDEF USEODTM}
{.include ObjectDTM\ObjDTMInclude.simba}
{$ELSE}
{.include srl/srl/misc/paintsmart.simba}
{$ENDIF}

{$IFDEF USESPS}
{.include sps/sps.simba} //now used again
{$ENDIF}

const
ODTM_WALK = '81:91:4:9:7:39:60:9:7:30:81:9:7:91:95:9:7:99:74';
ODTM_AREA = '81:91:4:9:7:39:60:9:7:30:81:9:7:91:95:9:7:99:74:7:56:47:82:47:96:73:85:102:56:102:48:91:48:55';

var
Stats, Logs, CollectedRewards, StartingXP: Integer;

const
version = '1.2';
SRLStats_Username = '';
SRLStats_Password = '';

{Which slot in bank is your log is?}
LOGS_BANKSLOT = 1;
{How many ms to timeout for re-adding, change if you're LOW LEVEL}
FM_TIMEOUT = 10000;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Active := True;
Players[0].Pin := '';
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
Players[0].WorldInfo := [False, 100]; //thanks olly
end;

procedure SetupLogin;
begin
ClearDebug;
Smart_Server := 10;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
if (SRLStats_Username = '') then
SetupSRLStats(1155, 'Anonymous', 'anon1337')
else
SetupSRLStats(1155, SRLStats_Username, SRLStats_Password);
DeclarePlayers;

if not LoggedIn then
begin
repeat
LoginPlayerToLob;
until LobbyScreen;

OpenWorldScreen;
if not WorldScreen then
OpenWorldScreen;
if WorldScreen then
begin
writeln('picking world 100');
SelectWorld(100);
LogInPlayer;
end;
end;

while not LoggedIn do
wait(500);

if LoggedIn then
begin
ClickNorth(SRL_ANGLE_HIGH);
ExitSquealOfFortune();
if not IsXPBarOpen then
ToggleXPBar(True);
StartingXP := GetXPBarTotal;
SetChat('off', CHAT_ASSIST); //turn off your assist so that you wont complain
SetChat('off', CHAT_PUBLIC);
Mouse(90 + (CHAT_GAME * 55), 496, 8, 3, mouse_left); //click game tab
end;
end;

Procedure StartDTM;
begin
Logs := DTMFromString('mwQAAAHic42RgYHBiYmCwZoLQ3kDsA8SBULYLVO4pUN0dIL4NxDeA+CEQPwPiN0D8Dog/ArGJngCQZMKL/zMQBoxEYDgAAI5rDB0=');
end;

Procedure EndDTM;
begin
FreeDTM(Logs);
end;

Function FindInvLogs: Boolean; //Modified by Er1k
var x, y: integer;
begin
Result := FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2);
end;

Function NotFindInvLogs: Boolean;
var x, y: integer;
begin
Result := not FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2);
end;

Function FoundInvLogs: Boolean;
var x, y: integer;
begin
if FindDTM(Logs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MouseItem(CoordsToItem(x, y), mouse_move);
Result := True;
end;
end;

function OpeningBank: boolean; //Modified by Er1k
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;

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

if WaitFunc(@BankScreen, 100, 5000) then
begin
if not InvEmpty then DepositAll;
writeln('Withdrawing logs');

//Keep inventory slot
while GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10) = 0 do
begin
wait(100+random(50));
if not LoggedIn then Exit; //didn't expect this to fail actually, but it did
end;
writeln('amount of logs: ' + IntToStr(GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10)));
if GetBankItemAmount((LOGS_BANKSLOT-1) mod 10, (LOGS_BANKSLOT-1) div 10) < 29 then //sorry guys
begin
writeln('Not enough logs - Logout');
Logout;
TerminateScript;
end;

MouseBankSlot(LOGS_BANKSLOT, mouse_Right);
result:= WaitOption('All', 1000);
if result then
result:= CloseBank;
end;
end;

Function RewardsCollected :Boolean; //Unused
begin
Result := IsChatBoxTextAnyLine('spirit', clBlack);
end;

Function FindSpirit :Boolean; //Modified by Er1k
var
a: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS : Integer;
begin
result:=false;
if(not(LoggedIn))then Exit;
FindNormalRandoms;

tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);

// Original colors
// SetColorSpeed2Modifiers(0.52, 0.55);
// if FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4021133, 202, 129, 325, 230, 14) then

SetColorSpeed2Modifiers(0.19, 0.75);
if FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3825566, 202, 129, 325, 230, 12) then
begin
writeln('color count: ' + InttoStr(length(tpa)));
if Length(TPA) < 20 then //modded
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end else
begin
writeln('OMG SPIRIT?');
end;
end;

ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPAFromSize(ATPA, 1000, true);

for a := 0 to High(ATPA) do
begin
MP := MiddleTPA(ATPA[a]);
{$IFDEF SMART}
SMART_DrawDotsEx(false, ATPA[a], clYellow);
{$ENDIF}
Mouse(MP.X, MP.Y, 2, 2, mouse_move);
if WaitUpText('spiri', 500) then //using Uptext detection instead of just right-click
begin
ClickMouse2(mouse_right);
// Mouse(MP.X, MP.Y, 2, 2, mouse_Right);
if WaitOption('ollect', 3000) then
begin
WaitFunc(@RewardsCollected, 10, 3000);
writeln('Collect rewards');
writeln('Back to BonBon');
Result := True;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
Break;
end;
end;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

function BankScreenEx: boolean; //New
begin
result:= BankScreen or PinScreen;
end;

function FindShantayChest: boolean; //New
var a, tmpCTS, Tries: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
begin
result:=false;
if not LoggedIn then Exit;
if BankScreenEx then
begin
result:=true;
Exit;
end;
FindNormalRandoms;

tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.07, 0.12);

if FindColorsSpiralTolerance(MSCX, MSCY, tpa, 6451582, MSX1, MSY1, MSX2, MSY2, 7) then
begin
writeln('shantay chest tpa count: ' + IntToStr(length(tpa)));
ATPA:= TPAtoATPAEx(tpa, 25, 25);
for a:=0 to high(atpa) do
begin
{$IFDEF SMART}
SMART_DrawDotsEx(false, ATPA[a], clYellow);
{$ENDIF}
MP:= MiddleTPA(atpa[a]);
Mouse(mp.x, mp.y, 4, 4, mouse_move);
if WaitUpTextMulti(['pen S', 'antay','tay c', 'hest'], 500) then
begin
ClickMouse2(mouse_left);
if WaitFunc(@DidRedClick, 50, 1000) then
begin
writeln('Clicked Bank chest');
if WaitFunc(@BankScreenEx, 100, 5000) then
begin
writeln('BankScreenEx found');
result:= true;
{$IFDEF SMART}
SMART_ClearCanvas;
{$ENDIF}
break;
end;
end;
end;
end;
end
else writeln('Shantay chest not found...');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

procedure AntiBan;
var r: Integer;
begin
if not LoggedIn then Exit;
r := (RandomRange(1, 14));
if (r = 4) then
begin
writeln('Doing antiban');
case Random(20) of
0, 3: PickUpMouse;
1: RandomRClick;
2:
begin
HoverSkill('firemaking', false);
GameTab(tab_Inv);
end;
4: MMouse(MIX1, MIY1, MIX2, MIY2);
5: MMouse(MMX1, MMY1, MMX2, MMY2);
end;
end;
end;

function AddingScreen :Boolean;
begin
Result := CountColorTolerance(4543066, 17, 355, 484, 456, 2) > 2000;
end;

function BonBon: boolean; //Modified by Er1k
begin
result:=false;
if not LoggedIn then Exit;
if not (getCurrentTab = tab_Inv) then
FTab(tab_Inv);

if WaitFunc(@FoundInvLogs, 200, 5000) then
begin
ClickMouse2(mouse_Left);
if WaitFunc(@AddingScreen, 200, 5000) then
begin
writeln('Found add to bonfire screen');
MouseBox(323, 411, 389, 448, mouse_Left);
writeln('BONBONBONBON-ing');
result:= true;
end;
end;
end;

procedure XPTotalFinding;
var
XPGained: Integer;
begin
XPGained := GetXPBar(1);
writeln('EXP Gained' + IntToStr(XPGained));
end;

Procedure DrawTheBox;
var
XPBOX: TBox;
begin
XPBOX := IntToBox(375, 7, 421, 21);
SMART_DrawBox(XPBOX);
end;

procedure PlayerStats;
var
Wet, Wst, Cst, Srt, Tih, Tim, Tis, Awt, Sec, sst, EndingXP, XPGained: Integer;
begin
Cst := GetSystemTime;
Srt := (cst - sst) / 1000;
Tih := srt / 3600;
tim := (srt / 60) - tih * 60;
Tis := srt - tim * 60 - tih * 3600;
Awt := wet - wst
Sec := GetTimeRunning div 1000 + 1;
EndingXP := GetXPBarTotal;
XPGained := EndingXP - StartingXP;
Writeln('#######################################################');
Writeln(' Shantay Bank Chest Bonfire ');
Writeln('#######################################################');
Writeln('Logs / Hour : ' + IntToStr(Round(3600 * Players[CurrentPlayer].Integers[3] / Sec)));
Writeln('Logs Done : ' + IntToStr(Players[CurrentPlayer].Integers[3]));
Writeln('Fire Spirit : ' + IntToStr(CollectedRewards));
writeln('EXP Gained : ' + IntToStr(XPGained));
writeln('EXP / Hour : ' + IntToStr(Round(3600 * XPGained / Sec)));
Writeln('Running for : ' + TimeRunning);
Writeln('-------------------------------------------------------');

//SRL stats
if (TimeFromMark(Stats) > 360000) then // 6 minutes.
begin
Stats_Commit;
MarkTime(Stats);
end;
end;

function LogsDecreased(start: integer): boolean; //New
begin
result:= CountItems('dtm', logs, []) < start;
end;

function InShantayPassTPA: boolean;
var tpa: TPointArray;
begin
result:= false;
SetColorToleranceSpeed(1);
if FindMMColorsSpiralTolerance(tpa, 2248829, 25) then //rock brown
begin
writeln('tpa count: '+ IntToStr(length(tpa)));
result:= length(tpa) >= 850;
end;
writeln('InShantayPassTPA: ' + booltostr(result));
end;

function AdjustPositionTPA: boolean;
var x, y: integer;
tpa: TPointArray;
begin
result:= false;
if not InShantayPassTPA then Exit; //
SetColorToleranceSpeed(1);
if FindMMColorsSpiralTolerance(tpa, 2413294, 25) then //bank symbol
begin
writeln('tpa count: '+ IntToStr(length(tpa)));
MiddleTPAEx(tpa, x, y);
Mouse(x, y, 3, 3, mouse_left);
wait(1000+random(250));
while IsMoving do
wait(100+random(50));
result:= true;
end;
writeln('AdjustPositionTPA: ' + booltostr(result));
end;

//odtm main point
//'84:84:3:9:7:49:39:9:7:31:56:9:7:36:80'

//odtm area
//'80:80:3:9:7:49:39:9:7:31:56:9:7:36:80:8:58:40:77:40:92:53:92:83:76:96:61:96:51:81:51:46'

{$IFDEF USEODTM}
function InShantayPass: boolean; //New
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;
result:= ObjDTM_InArea(ODTM_AREA, true);
end;

function AdjustPosition: boolean; //New
var odtm: string;
cx, cy: integer;
begin
result:=false;
if not LoggedIn then Exit;
FindNormalRandoms;
odtm:=ODTM_WALK;
if ObjDTM_Find(odtm, cx, cy, True) then
begin
result:= true;
Writeln('We found it, now lets walk it!');
ObjDTM_Walk(odtm, 2, 200, 10, True);
end else
Writeln('We could not walk here, what a shame');
if result then
FFlag(2);
end;
{$ENDIF}
{$IFDEF USESPS}
function InShantayPass: boolean;
var p: TPoint;
begin
result:= false;
FindNormalRandoms;
if not InShantayPassTPA then Exit;
p:= SPS_GetMyPos;
writeln('Acquiring position...');
writeln('SPS located: ' + format('%d %d', [p.x, p.y]));
if (p.x <= -1) and (p.y <= -1) then Exit; //lost
result:= (Distance(p.x, p.y, 5065, 4185) <= 75);
writeln('InShantayPass: ' + booltostr(result));
end;

function AdjustPosition: boolean; //New
var p: TPoint;
begin
result:= false;
FindNormalRandoms;
if not InShantayPass then
begin
writeln('Cannot adjust as we''re not in Shantay Pass');
writeln('AdjustPosition: ' + booltostr(result));
Exit;
end;
p:= SPS_GetMyPos();
writeln('Adjusting position...');
writeln('SPS located: ' + format('%d %d', [p.x, p.y]));
result:= SPS_WalkPath([Point(5060, 4185)]);
writeln('AdjustPosition: ' + booltostr(result));
end;
{$ENDIF}

function CheckWorld100: boolean;
var cw: integer;
begin
result:=false;
FindNormalRandoms;
cw:= CurrentWorld;
writeln('current world is: ' + IntToStr(cw));
if (cw<>100) then
begin
writeln('world switch required');
result:= ChangeWorld(100);
writeln('world switch success: ' + booltostr(result));
end
else result:= true;
end;

procedure MainLoop; //New
var action: string;
t, t2, t3, ts, start, fail, fail2, fail3: integer;
check, redo: boolean;
v: TVariantArray;
begin
action:= 'bank';
while LoggedIn do
begin
FindNormalRandoms;
writeln('Current action is: ' + action);
if fail > 0 then
writeln('fail: ' + IntToStr(fail));
if (fail >= 5) then
begin
writeln('banking failed consecutively...');
writeln('checking our position...');
FindNormalRandoms;
if InShantayPass then
action:='walk'
else
action:='lode';
end;
if (fail3 >= 3) then //verify if we''re in world 100
begin
writeln('failed to add to bonfires for quite a bit...');
writeln('verifying if we''re on world 100 at all...');
FindNormalRandoms;
if not CheckWorld100 then
begin
Logout; //finish the script and hope SMARTManager/CrashSMART restarts it
TerminateScript;
end
else fail3:= 0; //continue, we''re just having very bad luck
end;
case action of
'bank': begin
if FindShantayChest then
begin
if OpeningBank then
begin
WaitFunc(@FindInvLogs, 200, 2000);
action:= 'burn';
fail:= 0;
end;
end
else Inc(fail);
end;
'burn': begin
redo:= true;
check:=true;
if (CountItems('dtm', Logs, []) = 0) then
begin
action:='bank';
continue;
end;
if Bonbon then
begin
start:= CountItems('dtm', Logs, []);
writeln('starting logs: ' + IntToStr(start));
v:= [start];

//use first log adding as heuristic, does not work for low levels
//because low levels might have large delays in adding first log to bonfire
if not WaitFuncEx('LogsDecreased', v, 500, 5000) then
begin
writeln('Guessing no bonfires nearby, relocate!');
AdjustPosition;
Inc(fail2); //silent updated

//Maybe try to find fire here later??
//todo
//if you insist you want to make your own fires
//add code here, but i aint doing this for your safety

if (fail2 >= 2) then //force banking to relocate
begin
writeln('position adjusting doesnt seem to work...');
writeln('will try to find bank chest to relocate...');
action:='bank';
fail2:= 0;
Inc(fail3);
end;
continue;
end;
fail2:=0;

MarkTime(t);
MarkTime(t2);
MarkTIme(t3);
repeat
FindNormalRandoms;
// writeln('current logs: ' + IntToStr(CountItems('dtm', Logs, [])));

//find fire spirit, thanks Ashaman88 for the tips
if IsChatBoxTextAnyLine('emerges', 397249) and (InvCount<24) and check then
// if (FindChatBoxText('emerges',8,397249{clRed})) and (InvCount<24) then
begin
writeln('Spirit is around!');
if FindSpirit then
begin
check:= false; //dont scan after we have collected rewards
Inc(CollectedRewards);
break;
end;
end;

//update and continue
if LogsDecreased(start) then
begin
start:= CountItems('dtm', Logs, []);
MarkTime(t);
end;

//No update in FM_TIMEOUT ms, force redo
if (TimeFromMark(t) > FM_TIMEOUT) and not LogsDecreased(start) then
begin
writeln('Logs stopped burning - will reburn');
break;
end;

wait(250+random(250));
until (CountItems('dtm', Logs, []) = 0) or (TimeFromMark(t2) > 120000);

//Decide action
if (CountItems('dtm', Logs, []) = 0) then
begin
IncEx(Players[CurrentPlayer].Integers[3], 28);
redo:= false;
PlayerStats;
end;
if not redo then
action:= 'bank';
end;
end;
'walk': begin
if AdjustPosition then
begin
action:='bank';
fail:= 0;
end;
end;
'lode': begin
FindNormalRandoms;
writeln('If you get this chances are you''ve failed a random!');
writeln('Or you''ve got a random but SRL failed to detect it');
writeln('TODO - logout and terminate');
Logout;
TerminateScript;
end;
end;
wait(100+random(50));
end;
end;

procedure DebugLocations; //Acid test on location finders
begin
InShantayPass;
AdjustPosition;
end;

begin
SetupLogin;
{$IFDEF USEODTM}
ObjDTM_Setup; //req'd for ODTM usage
ObjDTM_Debug := True;
{$ENDIF}
{$IFDEF USESPS}
SPS_SETUP(RUNESCAPE_SURFACE,['12_10']);
{$ENDIF}
SMART_ClearCanvas;
AddOnTerminate('EndDTM');
StartDTM;
// UseFindMod := false; //uncomment if you don't want mods to mess up
// DebugLocations; //uncomment if you need debug
MainLoop;

end.


you didn't post what your error was?

anyway whenever i run my script it always pops up two smarts

but each time red dot cursor just sits at the top left portion of the screen and doesn't move

Seinfeld

2012-07-29 20:19:14

bot working yet?

P1ng

2012-07-29 20:56:16

Bot has been fully updated and is working.
Latest Simba 991
Latest SMART v7.2

All been added to the auto-updater now.

Destined2bGreat

2012-07-30 00:49:44

From: runing low
you didn't post what your error was?

anyway whenever i run my script it always pops up two smarts

but each time red dot cursor just sits at the top left portion of the screen and doesn't move


Woops. It has errors with smart.simba, which, when changed to smartgraphics.simba, give errors pointing to smartgraphics.simba file about canvasing.

Kyle Undefined

2012-07-30 10:59:41

From: [J]ustin
Just checked my processes.. You are right.



Ben is aware of this, he has an idea on how to fix it.

speedster

2012-07-30 19:13:37

From: Kyle Undefined
Ben is aware of this, he has an idea on how to fix it.


That would be so frking awesome :D

Justin

2012-08-01 00:46:04

From: Kyle Undefined
Ben is aware of this, he has an idea on how to fix it.


Alright sweet. Thanks for getting back to me. I'm guessing it will be a plugin update?

shunhuawu

2012-08-01 03:16:59

so there is still no official fix?
when would it come out?

Wikkedninja

2012-08-01 06:07:42

I there an ETA on when this will be fix yet? I know there wasn't one at first but I'm just wondering if anyone could throw a educated guess out there

P1ng

2012-08-01 06:14:40

ETA: Some time last week I would say.

Kyle Undefined

2012-08-01 10:25:33

The official fix has been out for almost a week now. YoHoJo should really update the OP to say so.

lucifer0412

2012-08-01 10:47:18

From: Kyle Undefined
The official fix has been out for almost a week now. YoHoJo should really update the OP to say so.


wt fuaaarrrkk?!@?! can u please link me to this official update, and how come everybody is still in the dark about this? -.-.-.-.- like seriously someone needs to update this stuff!

Faab68

2012-08-01 11:02:57

Still getting this, I don't understand, i've tryed everything.
It worked before. I don't know what i'm doing doing wrong.
I'm not that experienced with Simba, can somebody give me a step by step guide on how to fix this, please? :(

SRL Compiled in 16 msec
Error: Out Of Range at line 267
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap]

P1ng

2012-08-01 11:04:47

Official update to Simba 991: http://villavu.com/forum/showthread.php?t=87258
Common script-side errors as a result of this update: http://villavu.com/forum/showthread.php?t=84334

Texy

2012-08-01 11:04:54

@Faab68, you'll have to post line 267 for anybody to be able to help you.

@lucifer, you can update your simba using the regular updater included in it, just make sure to update everything.

Faab68

2012-08-01 11:05:52

From: Texy
@Faab68, you'll have to post line 267 for anybody to be able to help you.

@lucifer, you can update your simba using the regular updater included in it, just make sure to update everything.


It's this:
End;

Edit:
Here's the whole script:

// Home of some free Simba Scripts: [url]http://smurg.net[/url]
//===== Version 1.05 =====
// Instructions:
// - Start next to bank chosen in settings
// - Fill in appropriate action and item slots
// - Run the script
//============================
Program QuickHerblore;
{$DEFINE SMART}
{$I SRL/SRL.SIMBA}
Var
firstMaterial, secondMaterial: Array of Integer;
WhereToBank: Variant;
Const
//==============================================================================
//===== Main Settings ======================================================

AccountLogin = ''; // Runescape Account Login
AccountPassword = ''; // Runescape Account Password
AccountPIN = ''; // Runescape Bank Pin
CleanOrPots = 'pots'; // 'Clean' : Grimy Herbs are firstMaterial
// 'Pots' : (Unf) Clean Herbs are firstMaterial, Water Vials secondMaterial
// (Finished) Non-edidable ingredient is firstMaterial
ClickingWait = 20; // Wait time for clicking for cleaning herbs
DebugMode = True;
World = 48;

Procedure DeclarePlayers;
begin
// [Row, Column] starts at 0, 0 in Bank
firstMaterial := [0, 0]; // [Row, Column] in Bank
WhereToBank := SRL_BANK_SW; // Bank where you want to run it at
// Full list added below
// --- If doing pots ---
secondMaterial := [0, 1]; // [Row, Column] in Bank

//===== SRL Supported Banks ================================================

// Bank_FE (Falador East Bank)
// Bank_FW (Falador West Bank)
// Bank_VE (Varrock East Bank)
// Bank_VW (Varrock West Bank)
// Bank_GE (Varrock GE Bank)
// Bank_DR (Draynor Bank)
// Bank_AK (Al-Kharid Bank)
// Bank_EV (Edgeville Bank)
// Bank_CT (Catherby bank)
// Bank_CM (Camelot bank)
// Bank_NA (North Ardougne bank)
// Bank_SA (South Ardougne bank)
// Bank_YN (Yanille bank)
// Bank_NG (North gnome bank)
// Bank_SG (South gnome bank)
// Bank_WG (Warrior guild bank)
// Bank_FG (Fishing guild bank)
// SRL_BANK_SW (Soul Wars chest)
// SRL_BANK_CW (Castle Wars chest)
// SRL_BANK_B (Burthrope chest: outside warriors guild)
// SRL_BANK_GG (Gamer's Grotto: north of Falador)

//===== End Of Main Settings ===============================================
//==============================================================================
NumberOfPlayers(1);
CurrentPlayer := 0;
With Players[0] Do
Begin
Name := AccountLogin;
Pass := AccountPassword;
PIN := AccountPIN;
Active := True;
Member := True;
SRL_DisableIPLog := True;
End;
end;

Var
StartTime, S_TR, TimeToBreak, Cleaned, Mixed: Integer;
F_Count: Integer;
F_String: String;

Const
C_OrangeMakeText = 2070783;

Procedure Wat(W1, W2: Integer);
Begin
Wait(RandomRange(W1, W2));
End;

Function DoCondition(TimeOut, WaitPer: Integer; Funct: Function: Boolean; Condition: Function: Boolean; Normal: Boolean): Boolean;
Var
T: Integer;
Begin
T := GetSystemTime + TimeOut;
If Normal Then
Begin
Repeat
Funct();
If (not Condition()) Then Wait(RandomRange(WaitPer, Round(WaitPer * 1.5)));
If (GetSystemTime > T) Then Exit;
Until(Condition())
End Else Begin
Repeat
Funct();
If Condition() Then Wait(RandomRange(WaitPer, Round(WaitPer * 1.5)));
If (GetSystemTime > T) Then Exit;
Until(Not Condition())
End;
Result := True;
End;

Function MakeItemMenu(TimeOut: Integer): Boolean;
Var
X, Y, T: Integer;
Begin
If Not LoggedIn Then Exit;
Result := FindColorSpiralTolerance(X, Y, C_OrangeMakeText, MCX1, MCY1, MCX2, MCY2, 10);
If Not Result Then
Begin
T := GetSystemTime + TimeOut;
Repeat
If Not LoggedIn Then Exit;
Result := FindColorSpiralTolerance(x, y, C_OrangeMakeText, MCX1, MCY1, MCX2, MCY2, 10);
Wait(100);
If (GetSystemTime > T) Then Exit;
Until(Result)
End;
End;

Function CustomLogin: Boolean;
Begin
Result := LoggedIn;
If Result Then Exit;
If Not LobbyScreen Then
Begin
Logout;
If Not LoginPlayerToLob Then Exit;
End;
If ChangeWorld(World) Then
Result := True;
SetAngle(SRL_ANGLE_HIGH);
End;

procedure Debug(Message: String);
begin
if DebugMode then Writeln(Message);
end;

Function LogMeIn: Boolean;
Begin
Result := DoCondition(300000, 30000, @CustomLogin, @LoggedIn, True);
End;

Procedure EndScript(Msg: String);
Begin
CloseWindow;
Logout;
Writeln(Msg);
TerminateScript;
End;

Procedure FailCount(Reset: Boolean; FType: String);
Begin
If Reset Then
Begin
F_Count := 0;
F_String := '';
Debug('Reset Fail Count');
End Else Begin
F_Count := F_Count + 1;
F_String := F_String + FType + '. ';
Debug('Added 1 to Fail Count: ' + FType);
End;

If F_Count > 7 Then EndScript(F_String);
End;

Procedure Report;
begin
S_TR := S_TR + (GetSystemTime - StartTime);
StartTime := GetSystemTime;
if (not DebugMode) then ClearDebug;
Writeln('____________Smurgs QuickHerblore V1.05_______________');
Writeln('');
If LowerCase(CleanOrPots) = 'clean' Then
Writeln('Herbs Cleaned: ' + IntToStr(Cleaned) + ' (' + IntToStr(Round(Cleaned div (S_TR div 1000.0 div 60.0 div 60.0))) + ' herbs/hr)');
If LowerCase(CleanOrPots) = 'pots' Then
Writeln('Pots Mixed: ' + IntToStr(Mixed) + ' (' + IntToStr(Round(Mixed div (S_TR div 1000.0 div 60.0 div 60.0))) + ' pots/hr)');
Writeln('Time running: ' + MSToTime(Round(S_TR), 0));
Writeln('Time until break: ' + MSToTime(TimeToBreak - GetSystemTime, 0));
Writeln('_____________________________________________________');
end;

Function BreakTime: Boolean;
begin
Result := (GetSystemTime > TimeToBreak);
end;

Procedure TakeBreak;
begin
Writeln('Time for a break');
S_TR := S_TR + (GetSystemTime - StartTime);

If BankScreen Then
DoCondition(10000, 1000, @CloseBank, @BankScreen, False);
DoCondition(30000, 5000, @ExitToLobby, @LobbyScreen, True);
Wait(RandomRange(30 * 1000, 60 * 1000));
DoCondition(30000, 5000, @CustomLogin, @LoggedIn, True);
TimeToBreak := GetSystemTime + (600 * 60 * 1000) + RandomRange((-5 * 60 * 1000), (5 * 60 * 1000));

StartTime := GetSystemTime;
end;

procedure Mose(X, Y, Xr, Yr: Integer; Button: Boolean);
var
B, C: Integer;
iButton: Integer;
begin
MMouse(X + RandomRange(-Xr, Xr), Y + RandomRange(-Yr, Yr), 0, 0);
Wat(ClickingWait, Round(ClickingWait * 1.2));

If Button Then
iButton := mouse_left
Else
iButton := mouse_right;

GetMousePos(B, C);
HoldMouse(B, C, iButton);
Wait(RandomRange(50, 70));
GetMousePos(B, C);
ReleaseMouse(B, C, iButton);
Wat(ClickingWait, Round(ClickingWait * 1.2));
end;

Function BankIt: Boolean;
Var
N, T: Integer;
Begin
If Not LoggedIn Then Exit;
For N := 0 to 3 Do
Begin
If BankScreen then Break;
If OpenBank(WhereToBank, True, True) Then Break;
If N = 3 Then Exit;
End;
If InvCount > 0 Then DepositAll;
Case LowerCase(CleanOrPots) Of
'clean': Begin
Writeln(GetBankItemAmount(firstMaterial[1], firstMaterial[0]));
If (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) <= 28) Then
Begin
T := GetSystemTime + 3000;
Repeat
Wait(250);
If GetSystemTime > T Then
Begin
FailCount(False, '0 materials, first slot! ');
CloseBank;
Exit;
End;
Until (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) > 28)
End;
For N := 0 to 3 Do
Begin
If Withdraw(firstMaterial[1], firstMaterial[0], 0) Then Break;
If N = 3 Then Exit;
End;
End;
'pots': Begin
Writeln(GetBankItemAmount(firstMaterial[1], firstMaterial[0]));
If (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) <= 14) Then
Begin
T := GetSystemTime + 3000;
Repeat
Wait(250);
If GetSystemTime > T Then
Begin
FailCount(False, '0 materials, first slot! ');
CloseBank;
Exit;
End;
Until (GetBankItemAmount(firstMaterial[1], firstMaterial[0]) > 14)
End;
For N := 0 to 3 Do
Begin
If Withdraw(firstMaterial[1], firstMaterial[0], 14) Then Break;
If N = 3 Then Exit;
End;
Writeln(GetBankItemAmount(secondMaterial[1], secondMaterial[0]));
If (GetBankItemAmount(secondMaterial[1], secondMaterial[0]) <= 14) Then
Begin
T := GetSystemTime + 3000;
Repeat
Wait(250);
If GetSystemTime > T Then
Begin
FailCount(False, '0 materials, second slot! ');
CloseBank;
Exit;
End;
Until (GetBankItemAmount(secondMaterial[1], secondMaterial[0]) > 14)
End;
For N := 0 to 3 Do
Begin
If Withdraw(secondMaterial[1], secondMaterial[0], 0) Then Break;
If N = 3 Then Exit;
End;
End;
End;
Repeat
CloseBank;
Wait(200);
Until Not BankScreen
T := GetSystemTime + 7500;
Repeat
Wait(25);
If GetSystemTime > T Then
Begin
FailCount(False, 'Didnt withdraw right! ');
Exit;
End;
Until InvCount = 28
Wait(RandomRange(100, 200));
Result := True;
End;

Function MakeThem: Boolean;
Var
N, X, Y, T, T2: Integer;
Order: TIntegerArray;
TB: TBox;
Begin
If Not LoggedIn Then Exit;
Repeat
CloseBank;
Until Not BankScreen
Gametab(tab_Inv);
Case LowerCase(CleanOrPots) Of
'clean': Begin
MouseSpeed := RandomRange(40, 50);
Order := [1, 5, 9, 13, 17, 21, 25, 26, 22, 18, 14, 10, 6, 2, 3, 7, 11, 15, 19, 23, 27, 28, 24, 20, 16, 12, 8, 4];
For N := 0 to 27 Do
Begin
TB := InvBox(Order[N]);
If FindColor(X, Y, srl_outline_black, TB.x1, TB.y1, TB.x2, TB.y2) Then
Mose(Round((TB.X1 + TB.X2) / 2), Round((TB.Y1 + TB.Y2) / 2), 5, 5, True);
End;
Cleaned := Cleaned + 28;
End;
'pots': Begin
MouseSpeed := RandomRange(40, 50);
InvMouse(14, mouse_left);
Wat(100, 250);
InvMouse(15, mouse_left);
If Not MakeItemMenu(5000) Then Exit;
N := InvCount;
Mose(260, 430, 20, 10, True);
T := GetSystemTime + 35000;
T2 := GetSystemTime;
Repeat
If InvCount < N Then
T2 := GetSystemTime;
N := InvCount;
Wat(50, 100);
If ((GetSystemTime > (T2 + 5000)) or (Not ExistsItem(28)) or (Not ExistsItem(14))) Then Break;
Until False
Mixed := Mixed + 14;
End;
Else
EndScript('CleanOrPots type wrong');
End;
Wait(RandomRange(150, 500));
Result := True;
If Result Then FailCount(True, '');
End;

Begin
ClearDebug;
Smart_FixSpeed := True;
SetupSRL;
SRL_SixHourFix := True;
DeclarePlayers;
if (not LogMeIn) then EndScript('Could not login pre-loop');
MakeCompass('W');
SetAngle(SRL_ANGLE_HIGH);
TimeToBreak := GetSystemTime + (330 * 60 * 1000) + RandomRange((-5 * 60 * 1000), (5 * 60 * 1000));
StartTime := GetSystemTime;
Repeat
If (Not LogMeIn) Then EndScript('Could not login in-loop');
If BreakTime Then TakeBreak;
If BankIt Then
Begin
FindNormalRandoms;
If MakeThem Then
Begin
Report;
FindNormalRandoms;
End Else
FailCount(False, 'Could not mix pots or clean herbs! ');
End Else
FailCount(False, 'Could not withdraw correctly! ');
Until False
TerminateScript;
End.

teamemb99

2012-08-01 11:06:19

can some1 pls help me i keep getting this error on Majority of scripts not all tho.



[Error] C:\Simba\Includes\srl/srl/misc/smart.simba(53:19): Invalid number of parameters at line 52
Compiling failed.

Austin

2012-08-01 11:09:52

From: lucifer0412
wt fuaaarrrkk?!@?! can u please link me to this official update, and how come everybody is still in the dark about this? -.-.-.-.- like seriously someone needs to update this stuff!

It's not that hard to find if you look around a bit or have been following this thread.. just go a few pages back and it should be there, shouldn't take that much effort. But I agree that the OP should be updated anyways. This whole thread should be closed imo.

Faab68

2012-08-01 11:19:40

I've literally spend like 5 hours trying to fix this.
I feel so ****ing dumb.
Please help me :(.
Not trying to sound like a leech, please teach me about Simba

P1ng

2012-08-01 11:27:09

From: teamemb99
can some1 pls help me i keep getting this error on Majority of scripts not all tho.
[Error] C:\Simba\Includes\srl/srl/misc/smart.simba(53:19): Invalid number of parameters at line 52
Compiling failed.


change -
{$i srl/srl/misc/smart.simba}

to -
{$DEFINE SMART}

@Faab - Add me on MSN/Skype. Just compiled the script you posted and it works fine.

Faab68

2012-08-01 11:40:07

From: P1ng
change -
{$i srl/srl/misc/smart.simba}

to -
{$DEFINE SMART}

@Faab - Add me on MSN/Skype. Just compiled the script you posted and it works fine.


Added you, accept please :).

karlita007

2012-08-01 15:39:15

Guys, i am stuck at this issue on this script: RiwuDomDagannoth

[Error] C:\Documents and Settings\home\My Documents\Downloads\riwuDomDagannoth (3).simba(1408:3): Unknown identifier 'Smart_Server' at line 1407
Compiling failed.


*Followed Ghetto fix; same error
*Followed this http://villavu.com/forum/showthread.php?t=87258, same error.

The script does autoupdate, well i think so.

Help would be VERY appreciated.:p

Kyle Undefined

2012-08-01 15:44:35

Remove the Smart_* stuff and it will compile.

Austin

2012-08-01 15:54:43

From: karlita007
Guys, i am stuck at this issue on this script: RiwuDomDagannoth

[Error] C:\Documents and Settings\home\My Documents\Downloads\riwuDomDagannoth (3).simba(1408:3): Unknown identifier 'Smart_Server' at line 1407
Compiling failed.


*Followed Ghetto fix; same error
*Followed this http://villavu.com/forum/showthread.php?t=87258, same error.

The script does autoupdate, well i think so.

Help would be VERY appreciated.:p

http://villavu.com/forum/showthread.php?t=84334

Follow that

Basically your changing:

Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;

To

SRL_SixHourFix := True;
Smart_FixSpeed := True;

karlita007

2012-08-01 15:59:23

From: Kyle Undefined
Remove the Smart_* stuff and it will compile.


Checking for script version…
Script Version: 9
Latest Version: 9
You have the latest version! Script starting…
SRL Compiled in 94 msec
Loading SMART: http://world78.runescape.com/f5206859855362085188


THANKS!!!!;););)

Austin

2012-08-01 16:02:00

Did you replace it with SixHourFix and FixSpeed too? They're good to have :)

dvander222

2012-08-01 20:34:10

can anybody help with the lrc miner script by harry? ive been working on it for hours and to no avial i cant get it to work. i keep getting a shit load of errors, updated everything. 1st main error is SmartSetDebug(True);
cheers??

Ferp

2012-08-04 00:26:46

I have Simba fully updated, and SMART loads perfectly with every script I try, but the red dot cursor just sits idly in the top left corner. It never logs me in. When I disable smart and log in myself, and then reenable, it sometimes moves around for a few seconds, and maybe types in my login info into the chatbox (accidentally of course) and stops. The scripts never continue to do anything. Any ideas?

digitalninja

2012-08-05 06:03:13

Hi Folks,

I have tried to install Smart v8 and copied the files into my c: but now get the follow error:

[Error] C:\Simba\Includes\SRL\srl\misc\SmartParams.Simba(70:8): Unknown identifier 'RSReady' at line 69 Compiling failed.

Any ideas how I fix this?

Thanks!!

Austin

2012-08-05 07:35:40

From: digitalninja
Hi Folks,

I have tried to install Smart v8 and copied the files into my c: but now get the follow error:

[Error] C:\Simba\Includes\SRL\srl\misc\SmartParams.Simba(70:8): Unknown identifier 'RSReady' at line 69 Compiling failed.

Any ideas how I fix this?

Thanks!!

Did you delete the ",-1" at line 277 in SmartParams?

Solar

2012-08-05 08:05:24

From: Austin
Did you delete the ",-1" at line 277 in SmartParams?


I tried that and it doesn't seem to change anything.

tommyashcroft

2012-08-05 19:36:04

Hello guys, Im getting this error, if anyone could help in fixing it that would be great. Thanks

[Error] C:\Simba\Includes\SRL/SRL.simba(86:19): Unknown identifier 'SetupSmart' at line 85
Compiling failed.

shstiger2009

2012-08-05 19:42:50

From: tommyashcroft
Hello guys, Im getting this error, if anyone could help in fixing it that would be great. Thanks

[Error] C:\Simba\Includes\SRL/SRL.simba(86:19): Unknown identifier 'SetupSmart' at line 85
Compiling failed.


Delete that line. Then delete the next line. Then delete the next line. Then delete the next line too.

Work?

tommyashcroft

2012-08-05 19:55:06

Yeah I sensed you were just mocking me, but I tried it anyway and no it didn't work.
I've had Simba working fine all year now, haven't used in about a week and when I come back to try it I'm getting this error. Its not like I've done anything to make it give me that error, I was asking for assistance with it. I have used the search function and found a few posts regarding the same thing but not fully understood the fixes, or maybe I've just been doing them wrong, either way if anyone can help me fix that error it would be great.

NKN

2012-08-06 09:15:55

SetupSMART is never called, it's not a procedure unless you make one.

Did you mean SetupSRL?

whisper133

2012-08-08 03:51:04

i have simba 0.991 and SMART 7.2 and when i start any script it opens smart it loads and once its fully loaded the script stops saying: "Paired with SMART[3056]
Successfully executed."
can someone help please?

Austin

2012-08-08 07:35:13

From: whisper133
i have simba 0.991 and SMART 7.2 and when i start any script it opens smart it loads and once its fully loaded the script stops saying: "Paired with SMART[3056]
Successfully executed."
can someone help please?

Get SMART v8.0:

http://villavu.com/forum/showthread.php?t=87801

Silent

2012-08-09 00:48:19

From: whisper133
i have simba 0.991 and SMART 7.2 and when i start any script it opens smart it loads and once its fully loaded the script stops saying: "Paired with SMART[3056]
Successfully executed."
can someone help please?


From: Austin
Get SMART v8.0:

http://villavu.com/forum/showthread.php?t=87801


SMART v7.2 should work fine. Check all your graphics settings and make sure they are appropriate. Fixed size, high brightness, etc.

Austin

2012-08-09 08:40:57

From: Silent
SMART v7.2 should work fine. Check all your graphics settings and make sure they are appropriate. Fixed size, high brightness, etc.

SMART v7.2 has pairing problems though, that's the main reason I updated to SMART v8.0

white_lycan

2012-08-16 03:28:21

so i've left the bot scene for a while since the social slayer update and the new banner update that ruined simba. is it fixed now, officially? do i have to edit the scripts i had before the update to work with simba? thanks.

Jakkle

2012-08-16 04:44:32

From: white_lycan
so i've left the bot scene for a while since the social slayer update and the new banner update that ruined simba. is it fixed now, officially? do i have to edit the scripts i had before the update to work with simba? thanks.


Using the srl include you'll be fine but if you are hard coding co-ords you need to make sure the Y co-ord is -50 from what simba shows.

rsplayer001

2012-10-19 17:32:03

I haven't run scripts in a few months now but I want to get a few levels and am having the same problem on every script.

when I launch any script I get to the login screen but script never logs me in. If I log myself in the script won't move. So far I've uninstalled the previous versions of simba, downloaded and installed the newest version. Updated everything but still no go and these are scripts that many users are using without issue. So I'm pretty sure it's a config issue on my part.

I really appreciate any help I can get with this.

Ashaman88

2012-10-19 17:37:01

From: rsplayer001
I haven't run scripts in a few months now but I want to get a few levels and am having the same problem on every script.

when I launch any script I get to the login screen but script never logs me in. If I log myself in the script won't move. So far I've uninstalled the previous versions of simba, downloaded and installed the newest version. Updated everything but still no go and these are scripts that many users are using without issue. So I'm pretty sure it's a config issue on my part.

I really appreciate any help I can get with this.


Fixed mode safe mode max brightness settings?

jhtest

2012-10-22 01:58:41

Hey guys, my script has run into some problems lately, its problem now being that it won't press play after it types my username and password. Simba is updated to the latest version as well as SRL and I have java 6 v 37. Please help with these:

Error: Out Of Range at line 869
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap]

The error appears with every script I run, a {login} script tab opens and the error is found in that tab. Thanks.

aaronaboyd2

2012-10-22 02:32:40

i'm having same problem ^^^^

Ashaman88

2012-10-22 07:00:59

What scripts? Show us an example of what you typed into the script. Change the login details though

Austin

2012-10-22 07:26:21

From: jhtest
Hey guys, my script has run into some problems lately, its problem now being that it won't press play after it types my username and password. Simba is updated to the latest version as well as SRL and I have java 6 v 37. Please help with these:

Error: Out Of Range at line 869
The following DTMs were not freed: [SRL - Lamp bitmap, 1]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap, SRL - NavBar Bitmap]

The error appears with every script I run, a {login} script tab opens and the error is found in that tab. Thanks.

What do you mean it won't "press play"? If the script typed your username and pass, then its already playing.

Ashaman88

2012-10-22 07:34:22

I think he is saying its that bug that was jet introduced. Search for riwu's fix or wait for srl to update again

Austin

2012-10-22 15:00:21

Oh, I wasn't aware of this bug yet :o

mikeym

2012-10-22 15:56:52

Exception in Script: Plugin(libsmartremote32) has not been found
this happens to me i searched this problem I looked for it just can't find where it says.

mikeym

2012-10-22 15:58:42

Never mind I didnt find anything when I searched it. It worked last night. Then just now I tried and it said that.

Mustakurmu

2013-03-03 15:24:51

Compiled successfully in 437 ms.
SRL Compiled in 0 msec
** Smart Cannot Spawn Clients **
Successfully executed.

Using only 32bit java, fully updated everything… and running SImba as admin, then opening script in Simba, but still :(

Prometheus

2013-03-03 18:22:52

From: Mustakurmu
Compiled successfully in 437 ms.
SRL Compiled in 0 msec
** Smart Cannot Spawn Clients **
Successfully executed.

Using only 32bit java, fully updated everything… and running SImba as admin, then opening script in Simba, but still :(


Gravedig. Should've posted this on the Help forums.