WT-Fakawi
2011-04-26 18:27:54
2011-04-26 18:27:54
2011-04-26 19:07:25
2011-04-26 22:32:14
From: NCDS
May I ask why there is a need to 'hand them out'? If people aren't 'up to par' with earning them, there's really nothing we can do about that, but I don't think we should just hand them out for fun.
2011-04-27 02:28:07
2011-04-27 03:36:38
2011-04-27 07:58:29
From: WT-Fakawi
I will come with lots of names, dont worry. Many need cupification.
Dont care if it is color or reflection. Work = work.
From: WT-Fakawi
disagree NCDS: always handed them out for fun. Bet halve of all your cups was handed out by me personally.
2011-04-27 08:47:03
From: NCDS
The way I think of cups (scripters specifically) is that New comers should be able to see who has the cup, then when they need help on a script (no matter what the problem is) ask someone with a scripting cup, and that person should have no problem answering.
2011-04-27 08:58:35
From: Boreas
Fawk is right, Effort must be rewarded, 'quality' or not.
Though that is a good point, so maybe another cup would be better lowering the standards for Azreal.
2011-04-27 11:01:10
From: Wizzup?
Yes, a Reflection mouse or some kind.
2011-04-27 11:35:09
2011-04-27 12:29:58
2011-04-27 13:44:07
2011-04-27 14:35:44
2011-04-27 14:37:51
2011-04-27 14:38:26
2011-04-27 14:39:11
From: IceFire908
Scripter's Cup should be given to anyone who has contributed a decent script in the last 30 days.
It was never meant to be a recognition beyond successful effort, and not a reflection of skill.
2011-04-27 14:44:15
2011-04-27 15:06:22
2011-04-27 15:09:44
2011-04-27 17:11:29
2011-04-28 03:47:24
2011-04-28 03:56:42
From: Wizzup?
On second thought, a Smurf would be cool too.
From: nielsie95
Fakawi, if you feel that a lot of people need cups, why don't you hand them out? Or why don't you post a list of people who you think deserve it? You shouldn't hand them out just to hand some cups out; it would be unfair to the people who actually earned them.
2011-04-28 04:07:25
2011-04-29 07:14:56
2011-05-04 05:24:47
2011-05-04 05:59:20
2011-05-04 12:39:22
2011-05-04 15:24:54
From: Bam Bam
I was just noticing how few members seemed to even have that silly kitty cat a second or two ago and then I found this. I think reflections scripters deserve recognition as well.
2011-05-04 16:53:38
2011-05-05 02:54:36
From: NCDS
Might as well give it to anyone who has a working script as it apparently means nothing other than the fact that the user has released a functioning bit of code to the public. :confused:
2011-05-05 11:01:51
2011-05-05 12:55:58
From: Nava2
I'd say the threashold should be somewhere around:
- ONE working but lasting script (two months?)
- MULTIPLE working scripts, not tested to last yet
2011-05-09 01:35:35
From: WT-Fakawi
Exactly. Has always been like that. Don't forget where you came from. We have all been noobs once.
2011-05-09 02:15:07
From: Coh3n
So then what about those who have showed exceptional scripting abilities, and not released a script that simply works?
2011-05-09 02:54:11
From: Coh3nWell.. I never released a script, but I have it :)
So then what about those who have showed exceptional scripting abilities, and not released a script that simply works?
2011-05-09 03:03:40
2011-05-09 03:41:12
2011-05-09 07:52:48
From: BraKI think I got it before MSI actually :)
[OffTopic] Zytex your script is part of MSI :p [/Offtopic]
@Icefire908 Hmm I guess you could look at it that way.
~BraK
2011-05-09 09:39:50
From: IceFire908
All it means is that you have made some type of contribution worthy of proving that you are a scripter. (Zyt3x, such as worldwalker?)
It does not reflect skill.
It does not reflect a stable script or array of them.
It is simply that.
2011-05-09 16:13:41
2011-05-09 21:37:09
From: IceFire908
Masters is for exemplary innovation and outstanding skill.
Scripters cup is valiant effort.
From: IceFire908
There is no cup for anything in between.
It's been this way for years.
2011-05-09 21:39:32
2011-05-09 21:47:01
From: IceFire908
You've been here since mid 2008, most scripting cups were given out before then.
2011-05-09 21:49:45
From: Coh3n
That's what I mean, the last couple years it hasn't been as easy to get as just writing and maintaining a script, and I like it that way.
2011-05-09 21:53:31
From: IceFire908
Scripters cup is valiant effort.
program LFS;
//{.include SRL/SRL/misc/SMART.scar}
{.include srl/srl.scar}
type // For organization purposes.
TProgress = record
LoadsD, Strings, xpg, xpgph, LvlUp: Integer;
end;
const
Version = 'Beta';
var Pinfo: array of TProgress; k, c, b, tol: Integer; ctc: Boolean;
label Start, S, ba;
procedure DeclarePlayers;
var i: Integer;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Nick := '';
Active := True;
Loc := 'bank';
Integers[0] := 25; //Loads to do before switching players.
Booleans[0] := True; //Take Breaks?
Integers[1] := 15; //Loads to do before taking break, plus random 5.
SetArrayLength(Pinfo, HowManyPlayers);
for i := 0 to HowManyPlayers-1 do
Players[i].Active := True;
SetPlayerNameTPAs;
end;
end;
function GetLoc(Location: string): Boolean;
var x, y: Integer; tpa: array of TPoint;
begin
if not LoggedIn then Exit;
case Location of
// Count blue color in quest symbol.
'downstairs' : begin
FindColorsSpiralTolerance(x, y, tpa, 14908517, MMx1,
MMy1, MMx2, MMy2, 20);
if Length(tpa) > 12 then
Result := True;
end;
// Count black around MM.
'upstairs' : begin
FindColorsTolerance(tpa, GetColor(684, 85), MMx1, MMy1, MMx2, MMy2, 2);
if Length(tpa) > 14000 then
Result := True;
end;
end;
{i := High(tpa);
Writeln('Length := '+IntToStr(i));} // Debug purposes.
end;
function WaitLoc(Location: string): Boolean;
var t: Integer;
begin
MarkTime(t);
Wait(1000 + Random(80));
while not GetLoc(Location) do
begin
Wait(1000);
if TimeFromMark(t) > 10000 then
Exit;
end;
Result := True;
end;
procedure PlayerReport;
var i: Integer;
begin
for i := 0 to (HowManyPlayers - 1) do
begin
Pinfo[i].Strings := Pinfo[i].LoadsD * 28;
Pinfo[i].xpg := Pinfo[i].Strings * 15;
Writeln('|'+Padr('Player: '+IntToStr(i)+'; Nick := '+Players[i].Nick+'; Active := '+BoolToStr(Players[i].Active)+';', 50)+'|');
Writeln('|'+Padr('Completed '+IntToStr(Pinfo[i].LoadsD)+' Loads.', 50)+'|');
Writeln('|'+Padr('Spun '+IntToStr(Pinfo[i].Strings)+' Flax.', 50)+'|');
Writeln('|'+Padr('Gained '+IntToStr(Pinfo[i].xpg)+' Total Experience.', 50)+'|');
Writeln('|'+Padr('Gained '+IntToStr(Pinfo[i].LvlUp)+' Levels.', 50)+'|');
end;
end;
procedure Progress;
begin
Writeln(' __________________________________________________');
Writeln('| |');
Writeln('|'+Padr(' NCDS'#39' Flax Spinner Version: '+Version+';', 50)+'|');
Writeln('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|');
PlayerReport;
Writeln('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|');
Writeln('| |');
Writeln('|'+Padr(' Time Running: '+TimeRunning+'; ', 50)+'|');
Writeln('|__________________________________________________|');
end;
procedure tBreak;
var BTime, h, m, s, t: Integer;
begin
if Random(3) <= 2 then
Logout;
Progress;
BTime := RandomRange(5 * 60000, 30 * 60000);
ConvertTime(BTime, h, m, s);
Writeln('Taking a break for: '+inttostr(M)+ ' minutes and ' +inttostr(S)+ ' seconds.');
MarkTime(t);
repeat
ConvertTime(BTime - TimeFromMark(t), h, m, s);
Disguise('Taking a break for: '+inttostr(M)+ ' minutes and ' +inttostr(S)+ ' seconds.');
Wait(1000);
until(BTime < TimeFromMark(t));
Writeln('Resuming script...');
LoginPlayer;
end;
{*******************************************************************************
function GetColorPoints(x, y, Color, bp1, bp2, bp3, bp4, Width, Height, Tol: Integer): TPointArray;
By: NCDS
Description: Finds and Stores points defined by 'Color' and bp[1..4].
Also checks width, height and allows for tolerance.
*******************************************************************************}
function GetColorPoints(x, y, Color, bp1, bp2, bp3, bp4, Width, Height, Tol: Integer): TPointArray;
var tpa: array of TPoint; i, o: SmallInt; atpa: T2DPointArray;
begin
FindColorsSpiralTolerance(x, y, tpa, Color, bp1, bp2, bp3, bp4, Tol);
atpa := TPAtoATPAEx(tpa, Width, Height);
for i := 0 to High(atpa) do
begin
o := GetArrayLength(Result);
SetArrayLength(Result, o + 1);
Result[o] := MiddleTPA(atpa[i]);
end;
if Length(Result) > 1 then
WriteLn('Length(Array): '+IntToStr(o)+';');
end;
function FlaxAmount: Integer;
var x, y, i,a: Integer; iBox: TBox; Arr: array of TPoint;
begin
if not LoggedIn then Exit;
for i := 1 to 28 do
begin
iBox := InvBox(i);
FindColorsSpiralTolerance(x, y, Arr, 12433750, iBox.x1, iBox.y1,
iBox.x2, iBox.y2, 25);
if Length(Arr) > 1 then
Result := Result + 1;
end;
Writeln('FlaxAmount = '+IntToStr(Result)+';');
end;
function bScreen: Boolean;
var Arr: array of TPoint;
begin
if not LoggedIn then Exit;
FindColorsTolerance(Arr, 4106994, 194, 25, 322, 44, 20);
Result := Length(Arr) > 375;
end;
//Counts colors in title
function SpinScreen: Boolean;
var x, y: Integer; Arr: array of TPoint;
begin
if not LoggedIn then Exit;
Arr := GetColorPoints(x, y, 2070783, 156, 29, 361, 55, 1, 1, 5);
Result := Length(Arr) > 150;
if Result then
Writeln('SpinScreen found.');
end;
function OpenScreen: Boolean;
var cArr: array of TPoint; i, x, y, t, k: Integer; Bool: Boolean;
begin
if not LoggedIn then Exit;
cArr := GetColorPoints(MSCx, MSCy, 14606050, MSCx - 75, MSCy, MSCx + 75,
MSCy + 75, 1, 1, 7);
if Length(cArr) < 1 then
Exit;
for i := 0 to High(cArr) do
begin
MMouse(cArr[i].x, cArr[i].y, 2, 2);
Wait(180 + Random(50));
if Pos('pinning', Rs_GetUpText) > 0 then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
Flag;
Wait(800 + Random(30));
MarkTime(t);
while not SpinScreen do
begin
Wait(100);
if TimeFromMark(t) > 4000 + Random(500) then
Inc(k);
if k > 1 then
Exit;
Break;
end;
end;
Wait(120 + Random(30));
Result := SpinScreen;
if Result then
Break;
end;
end;
function Spin: Boolean;
var x, y: Integer;
begin
if not SpinScreen then Exit;
MouseBox(237, 89, 295, 155, 3);
Wait(80 + Random(30));
if (Pos('ow', Rs_GetUpText) > 0) then
begin
GetMousePos(x, y);
Mouse(x, y, 1, 1, False);
Wait(80 + Random(30));
Result := ChooseOption('ll');
end;
end;
//Counts ladder color to the left.
function AtBank: Boolean;
var Arr: array of TPoint; i, x, y: Integer;
begin
if not LoggedIn then Exit;
Writeln('Checking if AtBank;');
Arr := GetColorPoints(x, y, FindLadderColor, 565, 67, 601, 107, 1, 1, 3);
{a := Length(Arr); For debug.
Writeln(IntToStr(a));}
if Length(Arr) < 5 then
Exit;
Result := True;
Writeln('Location := Bank;');
end;
function Bank: Boolean;
var x, y, i, Counter: Integer; Arr: array of TPoint; ATPA: T2DPointArray; P: TPoint;
label Start;
begin
if not AtBank then Exit;
Writeln('Banking..');
Start:
Arr := GetColorPoints(x, y, 8424083, MSx1, MSy1, MSx2, MSy2, 1, 1, 5);
if Length(Arr) < 5 then
begin
SetAngle(False);
if Counter >= 1 then Exit;
Inc(Counter);
goto Start;
end;
SetAngle(True);
atpa := TPAtoATPAEx(Arr, 1, 1);
for i := 0 to High(atpa) do
begin
P := MiddleTPA(atpa[i]);
MMouse(P.x, P.y, 5, 5);
Wait(80 + Random(30));
if Pos('ank booth', Rs_GetUpText) > 0 then
begin
GetMousePos(x, y);
Mouse(x, y, 1, 1, False);
Wait(80 + Random(30));
ChooseOption('uickly');
MarkTime(k);
while not bScreen do
begin
Wait(150);
//Writeln('Waiting for BankScreen('+IntToStr(TimeFromMark(k))+');');
if TimeFromMark(k) > 7000 + Random(1000) then
Break;
end;
Wait(1500 + Random(80));
Result := bScreen;
end;
if Result then
begin
Writeln('Banking successful.');
Exit;
end;
end;
end;
function DepositInv: Boolean;
var x, y, i: Integer;
begin
if not BankScreen then Exit;
for i := 0 to 5 do
begin
MouseBox(379, 296, 412, 318, 3);
if Pos('eposit', Rs_GetUpText) > 0 then
begin
GetMousePos(x, y);
Mouse(x, y, 1, 1, True);
Result := True;
Exit;
end;
end;
end;
function WithdrawFlax: Boolean;
var x, y, i, t: Integer; Arr: array of TPoint;
begin
if not BankScreen then Exit;
Writeln('Withdrawing flax...');
FindColorsSpiralTolerance(x, y, Arr, 12433750, 40, 94, 64, 117, 20);
if Length(Arr) < 5 then
Exit;
for i := 0 to High(Arr) do
begin
MMouse(Arr[i].x, Arr[i].y, 3, 3);
Wait(80 + Random(30));
if Pos('lax', Rs_GetUpText) > 0 then
begin
GetMousePos(x, y);
Mouse(x, y, 1, 1, False);
ChooseOption('ll');
end;
MarkTime(t);
while not FlaxAmount > 0 do
begin
Wait(100);
if TimeFromMark(t) > 5000 then
Exit;
end;
Result := True;
Exit;
end;
end;
function Walk(Path: Integer): Boolean;
var x, y, i, a: Integer; cArr: array of TPoint; P: TPoint; Bool: Boolean;
begin
case Path of
//To Stairs.
1 : begin
Writeln('Walking to stairs...');
for i := 0 to 5 do
begin
cArr := GetColorPoints(x, y, FindLadderColor, 590, 97, 625,
147, 1, 1, tol);
if Length(cArr) < 1 then
Continue;
P := MiddleTPA(cArr);
Mouse(P.x, P.y, 1, 0, True);
Flag;
if WaitLoc('upstairs') or WaitLoc('downstairs') then
begin
Result := True;
Writeln('Walk(1); Complete.');
Wait(1500 + Random(50));
Exit;
end;
end;
end;
//To Spinning wheel.
2 : begin
if not GetLoc('downstairs') then Exit;
Writeln('Walking to spinning wheel...');
cArr := GetColorPoints(x, y, 13417647, 414, 58, 470, 113, 1, 1, 35);
if Length(cArr) < 1 then
begin
Writeln('Window Color Returned 0 Results.');
Exit;
end;
for i := 0 to High(cArr) do
begin
if (Distance(cArr[i].x, cArr[i].y, MSCx, MSCy) > 235) or
(Distance(cArr[i].x, cArr[i].y, MSCx, MSCy) < 130) then
Continue;
MMouse(cArr[i].x - 35, cArr[i].y , 2, 2);
Wait(80 + Random(30));
if IsUpText('alk here') or IsUpText('pinning wheel') then
begin
Bool := True;
Break;
end;
end;
GetMousePos(x, y);
Mouse(x, y, 1, 1, Bool);
WaitOption('alk here', 3000);
Flag;
Wait(1500 + Random(300));
Result := SpinScreen;
if not Result then
Result := OpenScreen;
if Result then
Writeln('Walk(2); Complete.');
end;
//To Bank. 4694448
3 : begin
if not GetLoc('upstairs') then Exit;
Writeln('Walking to bank...');
for i := 0 to 5 do
begin
cArr := GetColorPoints(x, y, FindLadderColor, MMx1, MMy1, MMCx - 5, MMCy - 5, 1, 1, 10);
if Length(cArr) < 1 then
Continue;
P := MiddleTPA(cArr);
Mouse(P.x + 38, P.y, 4, 4, True);
FFlag(2);
Break;
end;
Wait(1200 + Random(80));
Result := AtBank;
if Result then
Writeln('Walk(3); Complete.');
end;
end;
end;
function HandleStairs(Which: string): Boolean;
var x, y, i, t, n: Integer; sArr: array of TPoint; P: TPoint;
begin
if not LoggedIn then Exit;
Writeln('Handling stairs...');
for i := 0 to 5 do
begin
Inc(i);
sArr := GetColorPoints(MSCx, MSCy, 8226183, MSCx - 100, MSCy - 30,
MSCx + 30, MSCy + 375, 1, 1, 15);
if Length(sArr) < 3 then
Continue;
P := MiddleTPA(sArr);
MMouse(P.x, P.y, 0, 0);
MarkTime(t);
while not Pos('taircase', RS_GetUpText) > 0 do
begin
Wait(700 + Random(30));
if TimeFromMark(t) >= 5000 then
Break;
end;
GetMousePos(x, y);
if TimeFromMark(t) < 5000 then
case Which of
'up' : begin
Mouse(x, y, 0, 0, True);
Flag;
Result := WaitLoc('downstairs');
end;
'down' : begin
Mouse(x, y, 0, 0, False);
WaitOption('up', 4000);
Flag;
Result := WaitLoc('upstairs');
end;
end;
if Result then
begin
Wait(1500 + Random(80));
Writeln('Stairs handled succesfully.');
Exit;
end;
end;
end;
function N_ClickContinue: Boolean;
var x, y: Integer; Arr: array of TPoint;
begin
Arr := GetColorPoints(x, y, 16711680, 213, 456, 363, 471, 40, 40, 20);
if Length(Arr) > 1 then
begin
Arr := GetColorPoints(x, y, 0, 456, 419, 477, 431, 10, 10, 5);
if Length(Arr) > 1 then
begin
Result := True;
Inc(Pinfo[CurrentPlayer].LvlUp);
end;
end;
end;
procedure SetUp;
begin
SetUpSRL;
ClearDebug;
Status('Setting up...');
ActivateClient;
DeclarePlayers;
LogInPlayer;
MakeCompass('N');
SetAngle(True);
FindNormalRandoms;
Status('Set up!');
Status('');
end;
begin
SetUp;
ActivateClient;
repeat
if Pinfo[CurrentPlayer].LoadsD >= Players[CurrentPlayer].Integers[0] then
NextPlayer(True);
//Break
if Pinfo[CurrentPlayer].LoadsD >= 1 then
if Players[CurrentPlayer].Booleans[0] then
if (Pinfo[CurrentPlayer].LoadsD mod Players[CurrentPlayer].Integers[1]) = 0 then
tBreak;
//Banking
if not AtBank then
begin
Writeln('Please place ALL characters at bank.');
NextPlayer(False);
end;
if FlaxAmount = 28 then
goto Start;
ba:
if Bank then
begin
if not InvEmpty then
DepositInv;
MarkTime(k);
while not InvEmpty do
begin
Wait(100);
if TimeFromMark(k) > 5000 then
Break;
end;
Wait(300 + Random(50));
WithdrawFlax;
if FlaxAmount = 0 then
NextPlayer(False);
end else
begin
Mouse(MSCx + Random(5), MSCy - RandomRange(90, 100), 0, 0, True);
goto ba;
end;
Start:
//Walk to spinning wheel
tol := 1;
//if RunEnergy(40) then
SetRun(True);
if Walk(1) then
if HandleStairs('up') then
if not Walk(2) then
NextPlayer(False);
S:
if ctc then
begin
OpenScreen;
ctc := False;
end;
//Spin Flax
if Spin then
begin
MarkTime(k);
while FlaxAmount > 0 do
begin
Wait(1000);
//if (TimeFromMark(k) mod 100) = 0 then
FindNormalRandoms;
case Random(80) of
5 : BoredHuman;
10 : PickUpMouse;
15 : RandomMovement;
end;
MakeCompass('n');
if N_ClickContinue then
begin
ctc := True
Break;
end;
if TimeFromMark(k) > 90000 then
Break;
end;
if ctc then
goto S;
if Random(15) = 5 then
HoverSkill('random', False);
if GetCurrentTab <> tab_Inv then
GameTab(tab_Inv);
end
else
NextPlayer(False);
//Walk to bank
tol := 60;
if Walk(1) then
if HandleStairs('down') then
if Walk(3) then
Inc(Pinfo[CurrentPlayer].LoadsD);
Progress;
until(AllPlayersInactive);
Progress;
TerminateScript;
end.
2011-05-09 21:55:49