SRL Archive - MSI Archives

MSAI and MSI


Special Ed

2007-07-07 02:10:57

Hey even though I'm in china I've still been thinking of ideas for MSI, and you know, I was thinking, what if we made something like multithreading that works with all msi scripts that kind of acts like an AI. Maybe not exactly like an AI but it would handle all anti - randoms and anti- ban functions, as well as auto responding. I think that maybe if we used the whole personality idea we could make MSI use variables for all mouse movements and what - not that all communicated with MSAI. MSAI would have like a bunch of different "personalities" in it and would declare variables for things such as mouse movements, wait times, maybe even the variables for DEADMOUSE if we decided to use that. I think that if we ran, anti - randoms, and the ant - ban procedures, seperate from the MSI scripts then people could still have their own scripts using MSI but still have the gauranteed protection in anti - ban, and anti - randoms, as well as MSI very intricate, and slightly confuzing auto - responding feature.

So what I was thinking is that we'd make this script that you would run with All MSI scripts "if you wanted" that would be anti - ban, anti - random, and auto responding, as well as personalities for mouse - movements, and randomness. The MSI procedures and functions themselves, would have a variable boolean at the beginning that would detect if the script is using MSAI.

Like there would be MSIA:Boolean and at the Begging when MSAI compiles it sets MSAI as true or something, so to use MSI you didn't have to use MSAI but you could if you wanted.

So what we'd do it program the MSI functions such as ChopUntil to sent MSAI a interscarmessage at certain points in the script to check for ents and perform anti-ban procedures as well. So that MSAI wouldn't create a lot of lag while running. I think if we were to develope this we would need to make "nearly" flawless anti - random procedures, so that MSAI would really be considered a SCAR AI. Intelligent enough not to screw up on randoms as well as programmed with a personality for the auto - responder and different mouse movements, it would be nearly impossible to detect.

What we could do is if the boolean for MSAI is true then instead of just using normal mouse procedures and functions would use intelligent mouse movement procedures like deadmouse or mousesplines, but using variables from MSAI's personalities. Because as I've noticed, move - mouse just swerves back and forth when it moves, yes it is random, but I don't know anyone who really moves a mouse that way.

I just think we need to start thinking into the future of scar an develope more intelligent things that will work with scar. Why do you think SendInterScarMessage was invented? People have questioned why noone used those functions and some people say scar needs multithreading and there are people on both sides of the debate. I honestly think that If we where to make this "MSAI" and if we made it well, scar and the SRL community would have the best of the best when it can to being covert from Gajex. I also think that this would be a huge challenge for the community even the Dev's I think would have some problems with this one. I honestly don't know why they haven't already made something like this. "Even though they probably have -.-" - in secret. BUT that is besides the point. The whole reason I got the idea to start MSI was to do community projects, to make multi - scripts, but as of now its just a few people here and there. Hardly the community. I want to come back from china to something interesting. I want to come back to people saying, Hey Special, we've been working on this idea, for a multi - script, so you think we should get the community working on it. Or something just telling me that you guys really do care about working together to make new scripts or bring about new ideas in the community.

I really think that if we can get the community together to work on a common goal we can create some incredible things.

Thanks for anyone who read this

- Special Ed

P.S. This didn't really end up being a suggestion, but the MSAI part was, and I really hope everyone will at least put some thought into it.

Jagex_Fagex

2007-07-07 06:45:56

another thing i have been thinking. you know the inter-scar messages we can also use them for the other skills. just to make the scripts a bit easier to write or understand when debugging.

Special Ed

2007-07-07 07:45:38

Yea it would have like a self debugging system to help us find problems, it would have like very detailed debugging reports, and stuff so we can make these procedure / functions as good as we possible can. Good thought!

shaunthasheep

2007-07-07 12:34:09

I've thought of multi-tasking in scar before, but It didn't sound like a good idea due to if the anti-randoms were called or w/e, it would start trying to click two different things, after reading your idea, I thought of a way to do the antirandoms (possibly) flawless. E.G:

program blah;
var
IsThereARandom : boolean;

procedure FindAntiRandoms;
begin
//just searches for antirandoms
//if it finds a random
IsThereARandom := True;
SetTimeOut(1, FindAntiRandoms); //calls it again in one second
end;

procedure SolvePossibleRandoms;
begin
if IsThereARandom then
//Solve the random
end;

begin
SetTimeOut(1, FindAntiRandoms); //will call findantirandom in a second simultaneously as the script is running
repeat
ClickTree;
while Chopping do
SolvePossibleRandoms;
until false
end.

Santa_Clause

2007-07-07 19:07:44

I couldn't be bothered reading the whole first post but from the first few paragraphs it seems like a good idea.

Smartzkid

2007-07-07 19:23:53

Sounds like a good idea; I think we need to ditch both responders though, and implement a new one (nielsie's full-chatbox responder, maybe?)

bullzeye95

2007-07-07 19:29:21

I'm up for it. We're waiting for you to get back though, right?

And could somebody explain SetTimeout to me? I can never seem to make it work right…

shaunthasheep

2007-07-07 20:51:48

SetTimeout is like a timer, but once you call it, will be called once.


SetTimeout(seconds, procname)

what stinks is you have to have seconds, minimum being 1 second…

so

SetTimeout(1, procname)

you can't have 1.1 or 0.1

the procname is the name of the procedure, i don't think it supports params.
so procedure Hello; would be called in a second using this line

SetTimeout(1, 'Hello);

and i forgot about this
but this should be if it finds a random:

ClearTimeouts;
and then SetTimeout after it solves it.

SKy Scripter

2007-07-08 01:44:49

thats kinda like the glitch i did in SCAR
using a TTIMER while finding random and anti ban lolz

Santa_Clause

2007-07-08 05:17:03

I thought it was a glitch in forms…

Special Ed

2007-07-08 07:42:41

So you guys are interested right? If you want to start working on it or at least thinking of some more ideas for it until I come back you can. I'm still here for 14 more days… so yeah… But I don't really understand the whole timeout thing. Wouldn't that just make MSAI wait, or is this part of the other script. Because what I was thinking is that all the procedures in MSI would be re-written "Yes I'll do it…" to include a statement like…

if(Recieveinterscarmessage('WAIT',MSAI))then
begin
repeat
Wait(100);
unti'(Recieveinterscarmessage('GO',MSAI));
end;

or something, so that as long as you made a script using MSI functions MSAI would work with it without lag… Do you see what I'm saying?

Jagex_Fagex

2007-07-08 07:48:13

it wouldn't try to click on 2 thing at once either.. because you would have something like

begin
sendInterScarMessage('Check Randoms');
repeat
wait(100)
until(RecieveInterScarMessage('finished searching');

that kinda thing.. i dunno if those interscar message thing's are right, but yeh.

Boreas

2007-07-08 07:58:58

Which means you need that called several times in the main thread. Which means it isn't as good as multiple threads where one thread can pause another without that thread asking if it needs to be paused. So you can have one thread constantly checking for randoms, but to act on them you need to call something as often (or more) as we call FindTalk now. It would save a little time/lag, but IMHO not worth it. Object finding and other stuff using multiple threads is though.