SRL Archive - MSI Bugs

Dynamic autoing?


Hugolord

2011-01-01 20:17:36

First of all let me congratulate everyone involved directly or indirectly in the MSI project, it looks and works absolutely great!

I may be suggesting something that may very well already be in place so I'm sorry if that's the case since I've only been trying MSI for a while..

My suggestion is to have a walking (reflection) path system linking all the current MSI starting locations. Why?
Well if we had this we could for example allow a player to do a certain number of tasks in different locations. For example: Mine coal and mithril at the lumby swamp and woodcut in some other location. Maybe have the script choose this automatically based on a percentage sort of like how it choose to mine/woodcut/fish stuff?
I think this would add a lot more to anti-ban in scripts.

Also, I was thinking about something else the other day.. With reflection we can get information about other players around you, like their position for instance. I think that it would be cool to implement a feature to search for a player's text if he is the only player around you. AKA you are mining for example and there's only one player there. He is probably talking TO you so I think SRL should recognize this and alert the user with a sound or something similar.

I don't think these things are particularly difficult to put into practice but I am at the last year of high-school and have exams coming up so I will not really be returning to scripting at SRL until I am done and I guess if this doesn't really get implemented I will probably make it all myself sometime this year :)

TomTuff

2011-01-01 20:47:15

TL;DR

what i got out of the first couple sentences: we already have a world walker, it's an MSI extra. I'm not sure if it would work for what you want though.

Camaro'

2011-01-01 20:59:08

Reading your second paragraph gave me the idea, why don't any reflection scripts right click on players? I do that a lot when I play :)

NCDS

2011-01-01 21:43:48

We've been planning to implement this for quite some time now, were just quite busy.

It will get done though. :)

Gu3st...

2011-01-01 22:17:52

This is actually the core idea of MSI :)

"MSI's aim is to have a do-it-all-everywhere script. Does this sound ambitious? It sure as hell is. It would be the ultimate script, untraceable, impossible to detect and you could just run it, return a few years later and have a char at all 99 levels. Now doesn't that sound amazing?"

HyperSecret

2011-01-01 23:46:37

[QUOTE=Camaro';764540]Reading your second paragraph gave me the idea, why don't any reflection scripts right click on players? I do that a lot when I play :)

procedure RandomExamine(Inv: Boolean);
var
i, r, o: Integer;
TB: TBox;
oPlayer: TPlayer;
oPlayers: Array of TPlayer;
begin
if not LoggedIn then Exit;
if Inv then
begin
o := 0;
if GameTab(4) then
begin
for i := 1 to 28 do
if ExistsItem(i) then Inc(o);
if ( o = 0 ) then Exit;
r := RandomRange(1, o);
if ExistsItem(r) then
begin
TB := InvBox(r);
MouseBox(TB.x1, TB.y1, TB.x2, TB.y2, 2);
if ChooseOption('xamine') then
Exit;
end;
end;
end else
begin
oPlayers := GetPlayers;
if ( Length(oPlayers) = 0 ) then Exit;
for i := 0 to High(oPlayers) do
begin
oPlayer := GetPlayer(oPlayers[i].Name);
Mouse(oPlayer.Ms.x, oPlayer.Ms.y, 8, 15, false);
Wait(Random(500) + RandomRange(500, 1500));
if ChooseOption('ancel') then
Exit;
end;
end;
end;

I made something that did this in a script that I never released below SSRL. If the parameter is true it will examine a random item in the inventory, otherwise it will right click a group of players and choose the 'cancel' option.

Coh3n

2011-01-02 00:37:49

Yep, it's already in the works. ;)

MSI has already been written so each player can have however many scripts the user wants (i.e. it could do 10 loads of Varrock East Miner then 10 loads of fishing in Draynor Village); however, it isn't completed. With Cstrike's World Walker, it shouldn't be hard to finish, but I assure you, it will get done. :)

Camaro'

2011-01-02 01:28:20

From: HyperSecret
procedure RandomExamine(Inv: Boolean);
var
i, r, o: Integer;
TB: TBox;
oPlayer: TPlayer;
oPlayers: Array of TPlayer;
begin
if not LoggedIn then Exit;
if Inv then
begin
o := 0;
if GameTab(4) then
begin
for i := 1 to 28 do
if ExistsItem(i) then Inc(o);
if ( o = 0 ) then Exit;
r := RandomRange(1, o);
if ExistsItem(r) then
begin
TB := InvBox(r);
MouseBox(TB.x1, TB.y1, TB.x2, TB.y2, 2);
if ChooseOption('xamine') then
Exit;
end;
end;
end else
begin
oPlayers := GetPlayers;
if ( Length(oPlayers) = 0 ) then Exit;
for i := 0 to High(oPlayers) do
begin
oPlayer := GetPlayer(oPlayers[i].Name);
Mouse(oPlayer.Ms.x, oPlayer.Ms.y, 8, 15, false);
Wait(Random(500) + RandomRange(500, 1500));
if ChooseOption('ancel') then
Exit;
end;
end;
end;

I made something that did this in a script that I never released below SSRL. If the parameter is true it will examine a random item in the inventory, otherwise it will right click a group of players and choose the 'cancel' option.


Yup, something like that would be cool in more scripts. Except maybe an option to just move the mouse away instead of clicking cancel every time. :)

Sir R. M8gic1an

2011-01-02 01:38:09

From: Hugolord

My suggestion is to have a walking (reflection) path system linking all the current MSI starting locations. Why?
Well if we had this we could for example allow a player to do a certain number of tasks in different locations. For example: Mine coal and mithril at the lumby swamp and woodcut in some other location. Maybe have the script choose this automatically based on a percentage sort of like how it choose to mine/woodcut/fish stuff?
I think this would add a lot more to anti-ban in scripts.

Also, I was thinking about something else the other day.. With reflection we can get information about other players around you, like their position for instance. I think that it would be cool to implement a feature to search for a player's text if he is the only player around you. AKA you are mining for example and there's only one player there. He is probably talking TO you so I think SRL should recognize this and alert the user with a sound or something similar.


Bolded / underliend / italized. Love the idea.

~RM

TomTuff

2011-01-02 01:42:14

From: Sir R. Magician
Bolded / underliend / italized. Love the idea.

~RM


italicization does nothing in a quote, RM :p

Sir R. M8gic1an

2011-01-02 02:10:19

From: TomTuff
italicization does nothing in a quote, RM :p


Yeah that was looking weird to me too lol

Hugolord

2011-01-02 06:53:08

Thanks for the comments guys. I actually like the whole idea of MSI as well, think we should have started this a long time ago! Well we did but I think it only really picked up this second time.
When I'm in university next year (hopefully) I will probably have a lot more time, there's a lot to do still with MSI and I hope I can be a part of it :)

Gu3st...

2011-01-02 08:13:56

You already are a part of MSI ;)
"MSI is a script. Yours and mine and everybody's. MSI is a community script. It is everyone's devotion, skill and time that makes MSI what it is. MSI is as big as you want it to be. MSI is as big as we make it."

It's great to hear more and more people are wanting to develop MSI :)

Dan Cardin

2011-01-02 10:39:31

The only problem is that it will get harder to give directions to the script, like "do 10 load of oaks in draynor, then walk to varrok and mine 10 loads of tin" especially in the form (unless some type of Treecheckbox like this added

Troll

2011-01-02 13:20:52

Or maybe something like setup one player with a order so its like
With 0 To High(Players) Do
Repeat
Setupwhat to do
Until(THe player has no more to do)

With a fancy forum to make it user friendly :)
Not sure if it would work though

Dan Cardin

2011-01-02 15:53:27

I dont think the problem would be getting it programmatically working. The problem would be allowing the user to set complicated rules to what they want the script to do and then making that user-friendly/in a form. I can actually think of a couple of ways to do it, but the form would need to be changed a bit for it to work.

Frement

2011-01-02 16:21:18

Maybe a list of instructions?

A button where you can add a new instruction, it would open a new form to setup a script with the desired values etc. Each player has its own list.

Coh3n

2011-01-04 01:43:45

Well right now in the form you can setup multiple scripts, there just aren't the functions in MSI to move from one script to the next.

When the support is added, the idea would be that it automatically walks from Script's A Loc to Script's B Loc. For example, for Player A, the user has set it to do 20 Loads at Varrock East Miner, and 30 Loads at Draynor Willows. After the Varrock East Miner is done, it will walk to Draynor Bank.

It sounds to me like you guys are over-complicating things, unless I'm missing something.

Frement

2011-01-04 01:50:39

From: Coh3n
Well right now in the form you can setup multiple scripts, there just aren't the functions in MSI to move from one script to the next.

When the support is added, the idea would be that it automatically walks from Script's A Loc to Script's B Loc. For example, for Player A, the user has set it to do 20 Loads at Varrock East Miner, and 30 Loads at Draynor Willows. After the Varrock East Miner is done, it will walk to Draynor Bank.

It sounds to me like you guys are over-complicating things, unless I'm missing something.


Can you setup multiple scripts of the same script? If you know what I mean, like varrock miner, 100 loads, draynor willows 100 loads, and varrock miner 50 loads.

Coh3n

2011-01-04 02:11:25

From: Frement
Can you setup multiple scripts of the same script? If you know what I mean, like varrock miner, 100 loads, draynor willows 100 loads, and varrock miner 50 loads.

Well no, but you will be able to specify why to move to the next script. So you would set VE Miner to 100 Loads and switch the Draynor willows after 50, then go back to VE Mine after finished with Draynor willows.

Hugolord

2011-01-04 04:19:48

Another thing could be to change what to mine/woodcut/fish etc from the same script. Like if you have the right mining level (70?) and you have coal, mithril, and addy set for he lumby west mine the script could check where the least amount of players are mining and It would go mine just there (perhaps with reflection?). Just some thoughts.

Dan Cardin

2011-01-04 07:05:02

From: Coh3n
Well right now in the form you can setup multiple scripts, there just aren't the functions in MSI to move from one script to the next.

It sounds to me like you guys are over-complicating things, unless I'm missing something.

the problem would be setting up how many loads and stuff to do in one script and how many to do in another. But that could be fixed by having "script attributes" show up to the right of the checkboxlist when you select an item.

TomTuff

2011-01-04 09:47:12

From: Hugolord
Another thing could be to change what to mine/woodcut/fish etc from the same script. Like if you have the right mining level (70?) and you have coal, mithril, and addy set for he lumby west mine the script could check where the least amount of players are mining and It would go mine just there (perhaps with reflection?). Just some thoughts.


This is a good idea. As an option, the user can set the max number of players there could be before a world switch. So if there's over 9000 people at willows, then world hop. (But every f2p botter and their mother does willows, so have fun with that one.)

Coh3n

2011-01-04 12:19:14

From: Hugolord
Another thing could be to change what to mine/woodcut/fish etc from the same script. Like if you have the right mining level (70?) and you have coal, mithril, and addy set for he lumby west mine the script could check where the least amount of players are mining and It would go mine just there (perhaps with reflection?). Just some thoughts.

You mean check different mines? Or just that mine? If the latter I don't know how you would do that; I don't know how you would determine which rock other players are mining.

From: Dan Cardin
the problem would be setting up how many loads and stuff to do in one script and how many to do in another. But that could be fixed by having "script attributes" show up to the right of the checkboxlist when you select an item.

There's already TEdits for Loads, Level and Time for each script, they just aren't enabled because they don't actually work yet.

Hugolord

2011-01-04 13:21:38

From: Coh3n
You mean check different mines? Or just that mine? If the latter I don't know how you would do that; I don't know how you would determine which rock other players are mining.


Can we not get animation information of other players using reflection? If not then, yes it is a lot more difficult I guess.. I think R. Magician had a function in his Guild miner that checked whether other players were already at a rock before choosing whether or not to go there perhaps something like that?

**BANNED The Man

2011-01-04 14:19:11

From: Hugolord
SRL should recognize this and alert the user with a sound or something similar.


Easily done like:
if DetectTalking then
PlaySound('FilePath');

-Boom

Coh3n

2011-01-04 14:38:35

From: Hugolord
Can we not get animation information of other players using reflection? If not then, yes it is a lot more difficult I guess.. I think R. Magician had a function in his Guild miner that checked whether other players were already at a rock before choosing whether or not to go there perhaps something like that?

Oh you're just talking about detecting if someone is mining the rock we want to mine? You said it in a really weird way. :p

But yes, that is possible.

Troll

2011-01-04 14:59:53

From: Coh3n
You mean check different mines?


It would be great if it could go to diffrent mines if it has world hopped 5 times and it know the other mine is used less ;)

Also aswell as changing scirpt after loads with you be able to do change skill after level? Would be great

**BANNED The Man

2011-01-04 15:05:05

From: Troll Man
It would be great if it could go to diffrent mines if it has world hopped 5 times and it know the other mine is used less ;)


Have like a Record/Type/Case of a list in respective order of mines usefulness.
Pretty sure that didn't make sense ^ :P
So like if you are at Mine A and it is really busy and you aren't getting many ores then it will decide which mine would be best depending on what you are mining and it will go to it. ? :)
Shouldn't be thaaaat hard :P
A simple way would be:
if TimeMinutes >= 60 then
if OresMined < 100 then
Case Players[CurrentPlayer].Ore of
'iron' : if AtMineA then
if not MineB then
if not MineC then
Exit;
end;
etc. :P

-Boom

Dan Cardin

2011-01-04 16:06:59

From: Coh3n
There's already TEdits for Loads, Level and Time for each script, they just aren't enabled because they don't actually work yet.
per script or per person?

Coh3n

2011-01-04 17:33:54

From: Troll Man
Also aswell as changing scirpt after loads with you be able to do change skill after level? Would be great

Yep, already there. ;)

From: Dynamite
Have like a Record/Type/Case of a list in respective order of mines usefulness.
Pretty sure that didn't make sense ^ :P
So like if you are at Mine A and it is really busy and you aren't getting many ores then it will decide which mine would be best depending on what you are mining and it will go to it. ? :)
Shouldn't be thaaaat hard :P
A simple way would be:
if TimeMinutes >= 60 then
if OresMined < 100 then
Case Players[CurrentPlayer].Ore of
'iron' : if AtMineA then
if not MineB then
if not MineC then
Exit;
end;
etc. :P

-Boom

That would be a huge pain, and a ton of huge cases. If it were to be done it would have to be done using some algorithm.

From: Dan Cardin
per script or per person?

Well both. On the 4th tab, there's the 'Total', and when you choose a script from the combo box in tab 5 (depending on the skill), there's Level, Time, and Loads.

Gu3st...

2011-01-04 17:56:38

From: Coh3n
Oh you're just talking about detecting if someone is mining the rock we want to mine? You said it in a really weird way. :p

But yes, that is possible.
No, that is not what he's talking about (afaic)

He's talking about changing rocks mid-autoing to the rock that has the least amount of other players mining at.

Hugolord

2011-01-04 20:23:57

From: Zyt3x
No, that is not what he's talking about (afaic)

He's talking about changing rocks mid-autoing to the rock that has the least amount of other players mining at.


Yes, that's what I mean :).

NCDS

2011-01-04 20:36:22

From: Zyt3x
No, that is not what he's talking about (afaic)

He's talking about changing rocks mid-autoing to the rock that has the least amount of other players mining at.


From: Hugolord
Yes, that's what I mean :).


Could be done with color by searching for the rocks, then PixelShift count around them to see if it's being mined, and if so, set it to BadPoint and continue looping through the rocks.

It could also be done with color by mousing over the spot near the rock and checking how many 'options' are available in the UpText. That could give you a pretty good idea of how many people are at that rock. However, people PowerMining could effect the result of this.


Keeping in mind Hybridization, could you get the tile of the rock, then search the touching, surrounding tiles and count the amount of players on them with Reflection?


Just some ideas that popped into my head while reading this.

Dan Cardin

2011-01-05 07:11:43

From: Coh3n
Well both. On the 4th tab, there's the 'Total', and when you choose a script from the combo box in tab 5 (depending on the skill), there's Level, Time, and Loads.


oh yea, i forgot that there was a script combobox on the last tab. I was thinking of having that stuff on the script choosing tab to make it seem like those were more attributes of the scripts themselves because they would show up when you chose one. But like i said that would require making the whole form bigger so it would be annoying. Disregard all my ramblings.

lordsaturn

2011-01-05 13:04:05

script setup:

[-] Loop 1
[-] VEM
SwitchType = Loads
HowMany = 15
Timer (minutes) = 60 //switch after 60 mins
[-] VWM
SwitchType = Level
HowMany = 1
Timer (minutes) = -1 //inf
[-] GE FM
SwitchType = CustomSwitchFunct1 //players on minimap
HowMany = 11
Timer (minutes) = 50
[-] GE Yews
SwitchType = None //inf
HowMany = 0
Timer (minutes) = -1
[-] Loop 2
[+] VWM
[+] VEM
[+] Loop 3

[x] Loop All?

Coh3n

2011-01-05 13:39:02

From: NCDS
Could be done with color by searching for the rocks, then PixelShift count around them to see if it's being mined, and if so, set it to BadPoint and continue looping through the rocks.

It could also be done with color by mousing over the spot near the rock and checking how many 'options' are available in the UpText. That could give you a pretty good idea of how many people are at that rock. However, people PowerMining could effect the result of this.


Keeping in mind Hybridization, could you get the tile of the rock, then search the touching, surrounding tiles and count the amount of players on them with Reflection?


Just some ideas that popped into my head while reading this.

I don't see how you could do it effectively with either color of reflection. There could be a player beside the rock you want to mine, but they could be mining a different rock, know what I mean?

From: lordsaturn
script setup:

[-] Loop 1
[-] VEM
SwitchType = Loads
HowMany = 15
Timer (minutes) = 60 //switch after 60 mins
[-] VWM
SwitchType = Level
HowMany = 1
Timer (minutes) = -1 //inf
[-] GE FM
SwitchType = CustomSwitchFunct1 //players on minimap
HowMany = 11
Timer (minutes) = 50
[-] GE Yews
SwitchType = None //inf
HowMany = 0
Timer (minutes) = -1
[-] Loop 2
[+] VWM
[+] VEM
[+] Loop 3

[x] Loop All?

I originally thought about doing a tree type thing, but I couldn't figure out how. :o

NCDS

2011-01-05 15:37:54

From: Coh3n
I don't see how you could do it effectively with either color of reflection. There could be a player beside the rock you want to mine, but they could be mining a different rock, know what I mean?


Yeah, but if you found the rock, then looked for animation directly above the rock (axes hitting the rock), that should give a pretty reliable result I would think.

Is it possible to tell if another player is mining, and exactly what rock they are mining with Reflection?

Coh3n

2011-01-05 15:39:38

From: NCDS
Yeah, but if you found the rock, then looked for animation directly above the rock (axes hitting the rock), that should give a pretty reliable result I would think.

That may work.

From: NCDS

Is it possible to tell if another player is mining, and exactly what rock they are mining with Reflection?

Probably, what isn't possible? :p

lordsaturn

2011-01-06 05:30:20

From: NCDS
Yeah, but if you found the rock, then looked for animation directly above the rock (axes hitting the rock), that should give a pretty reliable result I would think.

Is it possible to tell if another player is mining, and exactly what rock they are mining with Reflection?


Animation above the rock? Animations aren't a property of objects. They are a property of the TPlayer class among others. You can get the animation of yourself, npcs and other players.

NCDS

2011-01-06 05:42:43

From: lordsaturn
Animation above the rock? Animations aren't a property of objects. They are a property of the TPlayer class among others. You can get the animation of yourself, npcs and other players.


I guess I shouldn't have used the word 'Animation' as I wasn't talking about Reflection there, but rather marpis' Animation.scar.

Dan Cardin

2011-01-06 07:09:37

why exactly cant we go back to scripts? You said MSI can go from VE wc to somewhereelse wc, but it cant start VE wc again in the same script?

lordsaturn

2011-01-06 07:59:02

From: NCDS
I guess I shouldn't have used the word 'Animation' as I wasn't talking about Reflection there, but rather marpis' Animation.scar.


okay. How good are the color walking paths for MSI?

Coh3n

2011-01-06 11:57:15

From: lordsaturn
okay. How good are the color walking paths for MSI?

Most are awesome. We're actually working on a rewrite of Walking_Color.simba so all paths use Camaro's function since it actually works unreal. I haven't really planned it out yet, but I would like to have the points' records automatically generated and saved to a file when the user uses reflection. Then eventually make the walking hybrid rather than just color or just reflection.

Ejjman

2011-01-13 13:55:46

Back to the main post, at the moment..

If I have my location set up at Varrock East Bank, then set it to cut wood in Falador, will it walk to Fally or will it just set the player to False?

Coh3n

2011-01-13 14:00:33

From: Ejjman1
Back to the main post, at the moment..

If I have my location set up at Varrock East Bank, then set it to cut wood in Falador, will it walk to Fally or will it just set the player to False?

Set the player to false. The world walker isn't properly implemented yet (i.e. it's not really being used at the moment).

Troll

2011-01-13 17:01:25

From: Dynamite
Have like a Record/Type/Case of a list in respective order of mines usefulness.
Pretty sure that didn't make sense ^ :P
So like if you are at Mine A and it is really busy and you aren't getting many ores then it will decide which mine would be best depending on what you are mining and it will go to it. ? :)
Shouldn't be thaaaat hard :P
A simple way would be:
if TimeMinutes >= 60 then
if OresMined < 100 then
Case Players[CurrentPlayer].Ore of
'iron' : if AtMineA then
if not MineB then
if not MineC then
Exit;
end;
etc. :P

-Boom


For this ^ being a huge pain couldnt all mines/woodcutting places get a rateing for ore/wood so say Lummy swamp west is 2nd best for coal ( I dunno ) and then for all scirpt it would just have to do
If busy Then
NextBestPlace and search for the next best

Or would that be long and painful as well?

nickrules

2011-01-13 18:21:31

Just dump the players on MM - most resource areas are nowhere near anything, and regardless of location, most people there are going to be using that resource.

Coh3n

2011-01-13 18:37:08

From: Troll Man
For this ^ being a huge pain couldnt all mines/woodcutting places get a rateing for ore/wood so say Lummy swamp west is 2nd best for coal ( I dunno ) and then for all scirpt it would just have to do
If busy Then
NextBestPlace and search for the next best

Or would that be long and painful as well?

Interesting idea. :rolleyes:

Dan Cardin

2011-01-14 14:11:32

why exactly cant we go back to scripts? You said MSI can go from VE wc to somewhere else wc, but it cant start VE wc again in the same script?

Sir R. M8gic1an

2011-01-14 14:16:31

From: Dan Cardin
why exactly cant we go back to scripts? You said MSI can go from VE wc to somewhere else wc, but it cant start VE wc again in the same script?


Of course it could. The problem is MSI can't go from A to B yet :p

MSI's walking needs and is going through re-structure to make proper use of cstrike's world walker and possibly Galileo. Right now the color walks are being re-written to use Camaro's method.