This made for a very interesting read.
Very interesting indeed.
Why does MSI go around each other in ego brushing circles?
Because there's enough work to brush our egos with.
Because when we brush our egos more people might want to join in.
And because those egos do deserve some brushing.
Claw, have a read through this:
Function MSI_FindObjectsTPA(Var Objs: TPointArray; ObjID: integer; SearchBox: TBox): Boolean;
Var
TPA, TempTPA: TPointArray;
ATPA: T2DPointArray;
I, II, CTS, TMP, H: Integer;
Box: TBox;
Boxes: TBoxArray;
Animating2: TBooleanArray;
BadPoint: Boolean;
Begin
If (Not LoggedIn) Then Exit;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(MSI_Objects[objID].Hue, MSI_Objects[objID].Sat);
Box := IntToBox(228, 150, 275, 200);
H := High(MSI_Objects[objID].Colors);
SetLength(ATPA, H + 1);
For I := 0 To H Do
FindColorsSpiralTolerance(MSCX, MSCY, ATPA[I], MSI_Objects[objID].Colors[I], SearchBox.X1, SearchBox.Y1, SearchBox.X2, SearchBox.Y2, MSI_Objects[objID].Tol);
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
{ Check if some of the colors was not on MS. }
If MSI_Objects[objID].FindAllColors Then
For I := 0 To H Do
If (Length(ATPA) < 1) Then
Begin
MSI_SubDebug('MSI_FindObjectsTPA: All colors weren''t found!');
Objs := [];
Exit;
End;
{ Check if we have enough pixels on MS. }
TPA := MergeATPA(ATPA);
If (Length(TPA) < MSI_Objects[objID].Accuracy) Then
Begin
MSI_SubDebug('MSI_FindObjectsTPA: No colors found!');
Objs := [];
Exit;
End;
ATPA := TPAtoATPAEx(TPA, MSI_Objects[objID].W, MSI_Objects[objID].H);
SortATPAFrom(ATPA, Point(MSCX, MSCY));
H := High(ATPA);
SetLength(TPA, H + 1);
if DEBUG_SMART then
DrawDotsMulti(true, ATPA);
For I := 0 To H Do
TPA[I] := MiddleTPA(ATPA[I]);
H := High(TPA);
SetLength(Boxes, H + 1);
For I := 0 To H Do
Begin
Boxes[I].X1 := TPA[I].X - (MSI_Objects[objID].W / 2);
Boxes[I].Y1 := TPA[I].Y - (MSI_Objects[objID].H / 2);
Boxes[I].X2 := TPA[I].X + (MSI_Objects[objID].W / 2);
Boxes[I].Y2 := TPA[I].Y + (MSI_Objects[objID].H / 2);
End;
If MSI_Objects[objID].Anim Then
Animating2 := AnimatingMulti(Boxes, 100, 1);
For I := 0 To High(TPA) Do
Begin
BadPoint := False;
//DrawBox(Boxes[I], 200);
{ Animation }
If (Not BadPoint) Then
If MSI_Objects[objID].Anim Then
If (Not Animating2[I]) Then
Begin
MSI_SubDebug('MSI_FindObjectsTPA: Not animating!');
BadPoint := True;
End;
{ Exclude own character }
If (Not BadPoint) Then
If MSI_Objects[objID].ExcludeSelf Then
If PointInBox(TPA[I], Box) Then
Begin
MSI_SubDebug('MSI_FindObjectsTPA: Own character!');
BadPoint := True;
End;
{ Invalid point }
If (Not BadPoint) Then
If ((TPA[I].X + TPA[I].Y) < 1) Then
Begin
MSI_SubDebug('MSI_FindObjectsTPA: Invalid point!');
BadPoint := True;
End;
{ Accuracy }
If (Not BadPoint) Then
If (Length(ATPA[I]) < MSI_Objects[objID].Accuracy) Then
Begin
MSI_SubDebug('MSI_FindObjectsTPA: Not enough points!');
BadPoint := True;
End;
{ Bad colors }
If (Not BadPoint) Then
For II := 0 To High(MSI_Objects[objID].BadColors) Do
Begin
MSI_SubDebug('MSI_FindObjectsTPA: Looking for bad color: '+IntToStr(MSI_Objects[objID].BadColors[II]));
If FindColorSpiralTolerance(TMP, TMP, MSI_Objects[objID].BadColors[II], TPA[I].X - (MSI_Objects[objID].W / 2), TPA[I].Y - (MSI_Objects[objID].H / 2), TPA[I].X + (MSI_Objects[objID].W / 2), TPA[I].Y + (MSI_Objects[objID].H / 2), MSI_Objects[objID].BadColorTolerance) Then
Begin
MSI_SubDebug('MSI_FindObjectsTPA: Bad color found!');
BadPoint := True;
Break;
End;
End;
{ FindAllColors }
If (Not BadPoint) Then
If MSI_Objects[objID].FindAllColors Then
For II := 0 To H Do
Begin
TempTPA := MSI_ReturnPointsInBox(ATPA[II], IntToBox(TPA[I].X - (MSI_Objects[objID].W / 2), TPA[I].Y - (MSI_Objects[objID].H / 2), TPA[I].X + (MSI_Objects[objID].W / 2), TPA[I].Y + (MSI_Objects[objID].H / 2)));
If (Length(TempTPA) < 1) Then
Begin
MSI_SubDebug('MSI_FindObjectsTPA: All colors weren''t found!');
BadPoint := True;
Break;
End;
End;
{ Valid point! }
If (Not BadPoint) Then
Begin
SetLength(Objs, Length(Objs) + 1);
Objs[High(Objs)] := TPA[I];
End;
End;
Result := (Length(Objs) > 0);
End;
Now, to Keep It Simply Stupid, this is an object finder. A bit more advanced than FindObjTPA and FindObjCustom.
This object finder is used in all 26 MSI Scripts. Therefore all 26 scripts have better object finding than any script using SRL's Object finders.
Now, as you are most likely aware, I have talked of getting MSI code included into SRL.
Why?
- It is new & fresh
- It is of High Quality
MSI was founded as a development ground. And develop it has.
Oh, btw, I loved your LWSM. Did you get enough of an ego boost there?
Imagine how much ego there is to brush when you were involved in creating 26 scripts.
How many scripts have you created? 10? After… 3 years?
Have you perhaps looked into one of the latest threads in MSI?
From: Sir R. Magician
[php]
{$IFDEF ALPHA_WORLD_WALKER}
//WorldWalker.simba
{$ENDIF}
//for Alpha -> Beta!
{$IFDEF BETA_WORLD_WALKER}
{$DEFINE ALPHA_WORLD_WALKER}
{$ENDIF}
/* this will avoid you muddling through the include to find the defines. It'll also allow you to easily separate Alpha from Beta & Release. */
//AlphaDevelopments.simba
{$DEFINE ALPHA_WORLD_WALKER}
{$DEFINE ALPHA_SKILL_MAGIC}
{$DEFINE ALPHA_AUTO_RESPONDER}
{$DEFINE ALPHA_VWM_COLORWALK}
[/php]
Any code that runs can be put into MSI in this way. Way to appeal the crowds?
Don't want to use something that you don't trust too much or like too much? Remove the define!
I'll let you guys post this.
~RM
OMG, what is this all about?
Generating more activity. More development. More Opportunities.
MSI gives people an aim. Our aim is no longer to 'get banking working'. It's to 'prioritize our mining'.
MSI has every script building off of its core. We don't repeat our code. We generalize it.
And so we don't have to write 10 object finders like you did. We wrote one. And with the rest of our time got other things into place.
Now, I don't know what idea of yours you are talking about. And if you're also talking about Boreas' barebones, you are wrong. That's an idea I'd like to see happen and have been bringing up every now and then, but MSI has nothing to do with it.
Furthermore, MSI is not against reflection. MSI uses it. So lets just ignore that one.
Next, '
MSI is all MSI MSI MSI'. Well.. no. It's just that MSI is large, so you see a lot of it. Be a bit more active and you may notice our contributions in other threads.
Or maybe MSI is the one last thing that keeps us active. If MSI is keeping someone around SRL, I see nothing wrong with it.
Do people come to SRL because of MSI? How many people come to SRL? How many of those people use MSI?
I've got no clue. But MSI is the third most used Script. Possibly the most used script from the active scripts.
So I'd guess a large proportion of SRL or of the big autoers use it. Go figure.
Finally, I find this bash of yours on MSI as mis-informed as the last.
You seem to think MSI is a compilation of 26 different scripts. You're wrong.
MSI is a very strong core with a few skills files.
Each script is only about 10 lines long, compared to 1000+ lines of code, in the whole of MSI.
Furthermore, MSI encourages development. Color and Reflection.
MSI relies on synergy. The strength of teams.
MSI takes strength from the past. It doesn't recycle code.
MSI passes knowledge down.
————
And to answer your Simba points.
MSI has generated 1 extension for Simba so far.
MSI was one of the first scripts to use Simba.
MSI is one of the few Simba Scripts.
Simba does have a rank. Now it even has a cup.
And why didn't it before? Because one was never implemented. Why? Go figure.
Btw, have you heard that MSI can be downloaded through Simba, fill in declare players and boom, you have 26 scripts at your disposal?
Holy shit, is that easier than muddling through RS Bot to find a properly working script?
Man yeah, Wizzup's essence miner was great. Shame no one kept it up to date.
Guess what? If people still used it, and a team of people were there to keep it up to date, then maybe it'd still be alive.
And finally, MSI is a development ground. And as it is the third most used script, it is also a perfect place to test anything SRL might need tested.
Because it actually has testers!
So guess what? MSI is a perfectly well suited place to implement things that need testing, such as random solvers!
And then write a system that'll send the logs of the (possibly failed) random solver to a server and voila, you now know where the randoms are failing. You can also take the chance to gather data.
Honestly Claw, I think you're an idiot for not realizing MSI is generating a lot of development around SRL. Maybe you're just clueless.
I really tried hard to open your eyes with my threads and signatures and cups, but you're too goddamn stuck in your lil life to consider something new.
You're like that old man that still believes you shouldn't have sex before getting married, you know what I mean?
~RM