SRL Archive - General

MSI Sponsor


Sir R. M8gic1an

2010-07-29 17:54:19

From: Rasta Magician
From: ***
Hiya,

I've caught big interest in the MSI project, but I see that it doesn't support any member functions yet.

So I was just wondering, why is there just free functions? Surely people would like being able to use MSI at member locations, and I would for sure love being able to use MSI to chop magic trees. :)

If lack of membership accounts is the issue, I would be delighted to supply your team with membership pins for free, in order to help you implement member functions.

If this seems promising, add me on MSN; [email]***@hotmail.com[/email], or PM me. (But I prefer MSN).

~ ***


Hey there :)

I'm glad MSI caught your interest. The reason we don't have member functions is indeed the fact that not everyone has member accounts and therefore we believed F2P would attract more script users.

We do have enough accounts to provide member support, what we sometimes lack is the knowledge (eg I barely know the member's world). I think that what we need the most is those who do use member accounts to suggest member locations and specialities.

A huge thank you for the offer, I'll discuss with the team to see if we have use for a member account. Well, if it really is worth paying for it every month.

I see no immediate need, but feel free to add me on msn, [email]mendes_dd@hotmail.com[/email]

~RM


Thoughts on this?

~RM

3Garrett3

2010-07-29 18:10:13

I personally don't have a members account, I don't know much about the members worlds, as I have had members at one point when I played legit, but a lot has changed. I could think of some cool places to make scripts though, from what I remember at least.

NCDS

2010-07-29 18:11:53

Do enough SRL members have RS membership to make it worth making MSI P2P?

I have a catherby mage cutter already started that would be extremely easy to convert to MSI. It's no where near done yet but so you have an idea at how simple it would be..:

program NCDS_MageTreeCutter;
{.include SRL/SRL.scar}

type
MS_Obj = record
w, h, Accuracy, Tol: Integer;
Colors: TIntegerArray;
UpText, Option: string;
end;

AxeRec = record
Inv, Eqpt: Boolean;
iSlot: Integer;
end;

const
MS_Tree = 0;
MS_Bank = 1;

TotalLogs = 0;
LoadsBeforeBreak = 1;

Normal_Hatchet_BL = 74;
Dragon_Hatchet_BL = ;

var
TreeInfo, BankInfo: MS_Obj;
AxeInfo: AxeRec;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
Name := '';
Pass := '';
Nick := ''; // 3-4 LOWERCASE letters from your username.
Active := True; // True = use this player.
Loc := 'Bank';

Integers[TotalLogs] := 1000; //Total amount to cut
Integers[LoadsBeforeBreak] := 4; //Plus Random(4);
end;

SetArrayLength(PlayerReport, HowManyPlayers);
// SetPlayerNameTPAs;
end;

function LoadMS_ObjInfo:(Obj: Integer): MS_Obj;
begin
case Obj of
MS_Tree:
with Result do
begin
w := 100;
h := 93;
Accuracy := 10;
Tol := 5;
Colors := [9424851, 10545132, 10743025];
Option := 'hop';
UpText := 'agic tree';
end;

MS_Bank:
with Result do
begin
w := 28;
h := 6;
Accuracy := 6;
Tol := 5;
Colors := [10460833, 12500157, 11118512];
Option := 'uickly';
UpText := 'ooth';
end;
end;
end;

function SortATPASizeToTPA(MDAr: T2DPointArray; Accuracy: Integer): TPointArray;
var
i: Integer;
begin
for i := 0 to High(MDAr) do
if Length(MDAr[i]) >= Accuracy then
Result := CombineTPA(Result, MDAr[i]);
end;

procedure N_AntiBan;
begin
case Random(2850) of
1, 3, 5:
begin
HoverSkill('woodcutting', False);
PlayerReport[CurrentPlayer].ELevel := GetSkillInfo('woodcutting', False);
PlayerReport[CurrentPlayer].EExp := GetXP('woodcutting');
end;
12:
PickUpMouse;
50, 53:
RandomRClick;
60, 65:
HoverSkill('random', False);
80..82:
begin
WTime := RandomRange(2000, 8000);
MarkTime(t);
repeat
Status('Waiting '+IntToStr((WTime - TimeFromMark(t)) / 1000)+' seconds randomly..');
Wait(1000);
until(TimeFromMark(t) >= WTime);
Status('');
end;
end;
end;

function N_FindMSObjects(x, y: Integer; Colors: TIntegerArray; var MDAr: T2DPointArray;
SearchBox: TBox; Width, Height, Accuracy, Tol: Integer): Boolean;
var
i, cts: Integer;
Arr: array of TPoint;
begin
cts := GetColorToleranceSpeed;
ColorToleranceSpeed(2);

SetLength(MDAr, Length(Colors));

for i := 0 to High(Colors) do
FindColorsSpiralTolerance(x, y, Colors[i], MDAr[i], SearchBox.x1,
SearchBox.y1, SearchBox.x2, SearchBox.y2, Tol);

ColorToleranceSpeed(cts);

for i := 0 to High(MDAr) do
if Length(MDAr[i]) > Accuracy then
Arr := CombineTPA(MDAr[i], Arr);

Result := (Length(Arr) > 1);

if not Result then
begin
Writeln('N_FindMSObjects(); Failed to find Object.');
Exit;
end;

MDAr := TPAToATPAEx(Arr, Width, Height);
end;

procedure WaitWhileChopping;
var
MDAr, MDArr: array of array of TPoint;
Arr, Arr2: array of TPoint;
i, cCount: Integer;
SearchBox: TBox;
begin
Flag;
t := GetSystemTime + 60000;

SearchBox := IntToBox(
MSCx - Round(TreeInfo.w * 0.75),
MSCy - Round(TreeInfo.h * 0.75),
MSCx + Round(TreeInfo.w * 0.75),
MSCy + Round(TreeInfo.h * 0.75)
);

if N_FindMSObjects(MSCx, MSCy, TreeInfo.Colors, MDAr, SearchBox,
TreeInfo.w, TreeInfo.h, TreeInfo.Tol) then
begin
for i := 0 to High(MDAr) do
FilterPointsDist(MDAr[i], 5, 75, MSCx, MSCy);// Just as a fail safe.

Arr := SortATPASizeToTPA(MDAr, TreeInfo.Accuracy);
cCount := Length(Arr);

repeat
if N_FindMSObjects(MSCx, MSCy, TreeInfo.Colors, MDArr, SearchBox,
TreeInfo.w, TreeInfo.h, TreeInfo.Tol) then
begin
Arr2 := SortATPASizeToTPA(MDArr, TreeInfo.Accuracy);
if (Length(Arr2) < Round(cCount * 0.50)) then
Exit;
end else
Exit;

FindNormalRandoms;
N_AntiBan;

Wait(RandomRange(200, 500));

until(not (N_FindMSObjects(MSCx, MSCy, TreeInfo.Colors, MDArr, SearchBox,
TreeInfo.w, TreeInfo.h, TreeInfo.Tol))) or (t > GetSystemTime);
end;
end;

function ChopTree: Boolean;
var
i, x, y: Integer;
MDAr: array of array of TPoint;
Arr: TPointArray;
TreePoint: TPoint;
SearchBox: TBox;
Click: Boolean;
begin
if not LoggedIn then
Exit;

SearchBox := IntToBox(MSx1, MSy1, MSx2, MSy2);

for i := 0 to High(TreeInfo.Colors) do
if N_FindMSObjects(MSCx, MSCy, TreeInfo.Colors[i], MDAr, SearchBox,
TreeInfo.w, TreeInfo.h, TreeInfo.Tol) then
begin
SortATPAFrom(MDAr, Point(MSCx, MSCy));

for i := 0 to High(MDAr) do
begin
TreePoint := MiddleTPA(MDAr[i]);
MMouse(TreePoint.x, TreePoint.y, 1, 1);

if WaitUpText(TreeInfo.UpText, 100, 2000) then
begin
GetMousePos(x, y);
Click := (InRange(Random(10), 0, 5);
Mouse(x, y, 1, 1, Click);

if Click then
Result := True
else
Result := WaitOption(TreeInfo.Option, 100, 2000);

WaitWhileChopping;
end;
end;
end;
end;

function ChopInvFull: Boolean;
var
t: Integer;
begin
t := (GetSystemTime + (5 * 60000));
while (not(InvFull) and (LoggedIn) and (GetSystemTime < t) do
begin
if ChopTree then
t := (t + (4 * 60000));
Wait(RandomRange(200, 600));
FindNormalRandoms;
end;
Result := InvFull;
end;

function N_OpenBank: Boolean;
var
MDAr: array of array of TPoint;
i, ii, x, y, bBooth: Integer;
begin
if not LoggedIn then
Exit;

for i := 0 to High(BankInfo.Colors) do
if N_FindMSObjects(MSCx, MSCy, BankInfo.Colors[i], MDAr[i], SearchBox,
BankInfo.w, BankInfo.h, BankInfo.tol) then
begin
SortATPAFrom(MDAr, Point(MSCx, MSCy));

for ii := 0 to High(MDAr) do
begin
bBooth := Round(Length(MDAr[ii]) * 0.5);
MMouse(MDAr[ii][bBooth].x, MDAr[ii][bBooth].y, 3, 3);

if WaitUpText(BankInfo.UpText, 200, 2000) then
begin
GetMousePos(x, y);
Mouse(x, y, 1, 1, False);

if WaitOption(BankInfo.Option, 200, 2000) then
if WaitFunc(@BankScreen, 200, 2000) then
begin
Result := True;
Exit;
end;
end;
end;
end;
end;

function LocateHatchet: Boolean;
var
i, cCount: Integer;
tEtry: Boolean;
iBox: TBox;
begin
repeat

case GetCurrentTab of
tab_Inv:
begin

for i := 1 to 28 do
begin
iBox := InvBox(i);
cCount := CountColor(iBox.x1, iBox.y1, iBox.x2, iBox.y2, srl_outline_black);

if cCount = Normal_Hatchet_BL or cCount = Dragon_Hatchet_BL then
begin
Result := True;
AxeInfo.Inv := True;
AxeInfo.iSlot := i;
Exit;
end;

if i = 28 then
GameTab(tab_Equip);
end;
end;

tab_Equip:
begin
cCount := CountColor(569, 288, 602, 321, srl_outline_black);

if cCount = Normal_Hatchet_BL or cCount = Dragon_Hatchet_BL then
begin
Result := True;
AxeInfo.Eqpt := True;
Exit;
end;

tEtry := True;
GameTab(tab_Magic);
end;

else
begin

if i = 0 then
begin
GameTab(tab_Inv);
Continue;
end;

if i > 0 and tEtry then
begin
Writeln('Failed to find hatchet.');
Exit;
end;
end;
end;

until(Result);
end;

function N_Deposit: Boolean;
var
i: Integer;
iBox: TBox;
begin
if (not (LoggedIn)) or InvEmpty then
Exit;

if AxeInfo.Inv then
begin

if AxeInfo.iSlot > 1 then
for i := 1 to AxeInfo.iSlot - 1 do
if ExistsItem(i) then
begin
iBox := InvBox(i);
Mouse(RandomRange(iBox.x1, iBox.x2), RandomRange(iBox.y1, iBox.y2), 0, 0, False);
WaitOption('ll', 200, 2000);
end;

for i := AxeInfo.iSlot + 1 to 28 do
if ExistsItem(i) then
begin
iBox := InvBox(i);
Mouse(RandomRange(iBox.x1, iBox.x2), RandomRange(iBox.y1, iBox.y2), 0, 0, False);
WaitOption('ll', 200, 2000);
end;

Result := (InvCount = 1);
end;

if AxeInfo.Eqpt then
begin
DepositAll;
Result := InvEmpty;
end;

if InRange(Random(10), 3, 5) then
CloseBank;
end;
I was planning to release to SSRL when finished, but if MSI goes p2p then I'll put it in there

Coh3n

2010-07-29 18:27:16

Would be easy to add any woodcutters/miners. It'd be just like any other F2P script.

I know the member's world pretty well (I've logged something like 250+ days on my main). I'm sure a lot has changed since I played, but the map, etc. wouldn't have changed much.

Even if we had one account that we could all use to test new scripts. I'd be willing to let everyone use mine. It can teleport everywhere. I never use it anymore, and after the JAD ordeal, 3/4 of my money is gone anyway. Plus, I trust you guys. :p

Sir R. M8gic1an

2010-07-29 18:28:52

Well, I see no reasons for MSI not to have P2P, other than:
  • The possibility of creating & testing P2P scripts & Locations
  • The possibility to test P2P scripts

Because it terms of time, all we have to do is add a few object records and a few paths.

Or entire new skills.

I'd say to keep our focus on F2P, but I don't see why someone who wants to wouldn't be allowed to add say Fletching.simba

~RM

Coh3n

2010-07-29 18:33:19

From: Rasta Magician
Well, I see no reasons for MSI not to have P2P, other than:
  • The possibility of creating & testing P2P scripts & Locations
  • The possibility to test P2P scripts

Because it terms of time, all we have to do is add a few object records and a few paths.

Or entire new skills.

I'd say to keep our focus on F2P, but I don't see why someone who wants to wouldn't be allowed to add say Fletching.simba

~RM

I say we focus on F2P, but when there's a request for a member's script, we can add it (assuming it's of an existing skill). It takes me < 20 minutes to create and test a new script as I know exactly what to add and where to add it.

For member's skills, yes, let someone develop it if they want, but I don't think that should be our main focus (for right now, at least).

NCDS

2010-07-29 18:37:29

I agree, keep an open mind to p2p. If someone makes it or starts something then we may help them or whatever, but our (SL's) main focus should be on simply adding more skills/locations/stability etc.

Bebe

2010-07-29 18:42:41

I would just like to post that I have a fairly mid-level account that is P2P that I would be more than willing to allow MSI to use (even for a semi-extended amount of time) if needed.

@op: When dealing with members pins given from others I would be cautious. I hear many stories of people having their accounts banned weeks/months later. Jagex does not take very kindly to the black market of members pins. So as always, I would not use these members pins (if this person's offer is accepted) on any accounts that you would care if they were banned. So just play it cautious and use "expendable" accounts.

Sir R. M8gic1an

2010-07-29 18:44:43

Thank you bebe. I think the point to stress here is that this person is willing to make any account into a members account.

~RM

Blumblebee

2010-07-29 19:08:04

be warned, once money is involved people expect results. This being, the man who supplies the pins for us to create scripts will be expecting not only a say in what scripts are developed but also that scripts are continually developed for p2p purposes. Not saying accepting this is a bad idea, but you cannot just jump on this thinking it's going to be free membership and sunshine.

Sir R. M8gic1an

2010-07-29 19:23:50

From: Blumblebee
be warned, once money is involved people expect results. This being, the man who supplies the pins for us to create scripts will be expecting not only a say in what scripts are developed but also that scripts are continually developed for p2p purposes. Not saying accepting this is a bad idea, but you cannot just jump on this thinking it's going to be free membership and sunshine.


Good call.

I was thinking of turning it down as we obviously don't have a need for this. Keeping it in mind if we ever do need it.

~RM

marpis

2010-07-30 04:03:43

From: Blumblebee
be warned, once money is involved people expect results. This being, the man who supplies the pins for us to create scripts will be expecting not only a say in what scripts are developed but also that scripts are continually developed for p2p purposes. Not saying accepting this is a bad idea, but you cannot just jump on this thinking it's going to be free membership and sunshine.


A very good point.

Yea, I think you (RM) should deny, because if that guy provides us with PINs and won't be satisfied with what we then do, he could go flaming us on all forums.