May I be a judge? Also, I think we should give this competition more time, or not many people would join.
Also think its a bit unfair that I would have to re-edit my old script to match this
~Rez
May I be a judge? Also, I think we should give this competition more time, or not many people would join.
Also think its a bit unfair that I would have to re-edit my old script to match this
~Rez
For the basics of the basics of pascal, try my TuT. ||Photoshop Editing ||MapleResourceDung Script || Book a flight! BuySellTrip
i have added 2 judges as you guys requested=)
created my mr[s]
Cant speak for the official end system yet, but i would imagine something along the lines of taking the following into account when picking a winner,
Good Coding Standards and Comment (//) Documentation Help,
Credit All Code not written by you (should be a majority of your own work)
Anti-Ban / Human Likeness
Efficiency and How Well it Completes the Task
How stable the script is, and How good any failsafes are
Obviously some are more important than others, i dont like the idea of an actual point system, but picking a winner taking those things into account?
Let me know if i missed anything important in that list? I'd like to get a decent baseline system for future contest stuff,
I'm aware I didnt list anything about advanced functions, personally i dont believe that should give you any points over people using basic stuff, should be based on the task itself not the method, if you can use advanced stuff to do the task better than without, all the better
Last edited by DannyRS; 12-20-2012 at 04:34 AM.
Programming is like trying keep a wall of shifting sand up, you fix one thing but somewhere else starts crumbling
Well there are standard eval forms for the official comps - just depends on how big of a deal you want to make it.
Red & Green Salamander Hunter // Construction // Gilded Altar // Major help w/ Kyles Runespan // VWB Smither // PhoenixFeathers // GemCutter // Bonfire // LRC Miner // Spell Tab Maker // ApeAtollAgility // IvyWC // RoguesCooker // Herblore // AshamanButterfly // AshamanPowerMiner // Fletcher // LividFarm
^^dannyrs you coverd mostly all of it the scoring system (since im not much of a coder myself i wont know how to rate that area )
created my mr[s]
This^^^
- Good Coding Standards and Comment (//) Documentation Help
- Credit All Code not written by you (should be a majority of your own work)
- Anti-Ban / Human Likeness
- Efficiency and How Well it Completes the Task
- How stable the script is, and How good any failsafes are
- All requirements are met.
- Simplest route vs Hardest route. (Whichever is more human in this case)
- The layout of the script (tab'in
, line breaks, how short etc.)
- Speed of the script.
- Also, most important to me, the adaptability and functions/additions of the script! What makes your script different and special.
Just added a bit to your list. ^^^
For the basics of the basics of pascal, try my TuT. ||Photoshop Editing ||MapleResourceDung Script || Book a flight! BuySellTrip
i need more people to participate on this competition to make it more interesting=)
created my mr[s]
lol dannyrs won since he was the only one who participated in competition !!gratz dannyrs
you win teh 12m
created my mr[s]
Gratz Danny! I bet it was good![]()
danny i dont need the money i will be quitting =) afte rmy lol game ill pm you okay
created my mr[s]
leaving this for archive then, decide for yourself
cant get on rs right now
Simba Code:program DraynorBonFires;
{$Define SMART}
{$I SRL/SRL.Simba}
{$I SRL/SRL/Misc/Debug.Simba}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
//Setup
const
Debug = True; //enable if having problems
ScriptVersion = 'V1.0'; //proggy, no need to touch
//LOGIN NOT SUPPORTED ATM
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Pin := '';
Players[0].Nick :='';
Players[0].Active:=True;
end;
var
LogDTM,AshDTM: Integer;
{*******************************************************************************
All of these mouse movements and typing are credited to benland100 and flight.
thanks to Ashaman88 for his awesome scripts, i used his as a template
*******************************************************************************}
//By Bandland100, modified by Ashaman88 to shift mouse speeds after every step
//
procedure SuperWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
var
veloX,veloY,windX,windY,veloMag,dist,randomDist,lastDist,step: extended;
lastX,lastY,MSP,W: integer;
sqrt2,sqrt3,sqrt5: extended;
begin
MSP := MouseSpeed;
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 3) then
begin
maxStep:= random(3) + 3.0;
end else
begin
maxStep:= maxStep / sqrt5;
end;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
case Random(50) of
1..25: W := (MSP + (Random((MSP/4))));
26..50: W := (MSP - (RandomRange((MSP/2), MSP-1)));
end;
if (W < 1) then
W := 1;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
//W := round((maxWait - minWait) * (step / maxStep) + minWait);
wait(W);
lastdist:= dist;
end;
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));
MouseSpeed := MSP;
end;
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,j,Dist,MP: integer;
begin
j := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(j*MP), eX+(j*MP));
Y2 := RandomRange(eY-(j*MP), eY+(j*MP));
SuperWindMouse(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := j;
end;
Procedure HumanMouseBox(X1, Y1, X2, Y2: Integer);
Var
FX, FY: Integer;
Begin
GaussBox(FX,FY,X1,Y1,X2,Y2);
HumanMMouse(FX,FY,0,0)
End;
{*******************************************************************************
procedure FastClick(button: Integer);
By: Flight
Description: Quickly click the mouse.
*******************************************************************************}
procedure FastClick(button: variant);
var
x, y: integer;
ibutton: Integer;
begin
if VariantIsBoolean(button) then
begin
if (button) then
iButton := mouse_left
else
iButton := mouse_right;
end else
iButton := button;
if (iButton = mouse_move) then Exit;
GetMousePos(x, y);
HoldMouse(x, y, iButton);
Wait(RandomRange(60, 150));
GetMousePos(x, y);
ReleaseMouse(x, y, iButton);
end;
Procedure OffMM(RedTu, LeWait, rWait: Integer);
Var
W,H,RX,RY,T,RT: Integer;
Begin
GetClientDimensions(W,H);
H:=H+50;
RX := RandomRange(0, W);
RY := RandomRange(0, H);
Case (RedTu) Of
0..1: HumanMMouse(W/2, RandomRange(-110,-60), RX, 0);
2: HumanMMouse(RandomRange(-50,-10), H/2, 0, RY);
3: HumanMMouse(W/2, h+RandomRange(10,50), RX, 0);
4: HumanMMouse(W+RandomRange(10,50), H/2, 0, RY);
End;
RT:=(Random(rWait));
MarkTime(T);
Repeat
Wait(Random(100));
Until TimeFromMark(T)>(LeWait+RT);
End;
Procedure TypeFast(Text: String);
Var
I: Integer;
Begin
For I:=1 to Length(Text) Do
SendKeys(Text[I],RandomRange(90,140),RandomRange(90,140));
Wait(RandomRange(10,50));
End;
//
{*******************************************************************************
DannyRS's Part
*******************************************************************************}
Procedure LeftClickSpot(X1, Y1, X2, Y2: Integer);
var Y1NOBanner, Y2NOBanner: Integer;
Begin
Y1NOBanner:=Y1 - 50; Y2NOBanner:=Y2 - 50;
HumanMMouse(RandomRange(X1,X2),RandomRange(Y1NOBanner,Y2NOBanner),0,0);
Wait(9+Random(37));
FastClick(true);
Wait(124+Random(193));
End;
Procedure DragMouseSpot(X1, Y1, X2, Y2: Integer);
var Y1NOBanner, Y2NOBanner: Integer;
Begin
Y1NOBanner:=Y1 - 50; Y2NOBanner:=Y2 - 50;
HumanMMouse(RandomRange(X1,X2),RandomRange(Y1NOBanner,Y2NOBanner),0,0);
Wait(9+Random(37));
End;
Procedure ClickCurrent(ToDo: Boolean);
Begin
Wait(9+Random(37));
if ToDo = True then
begin FastClick(True); end
else if ToDo = False then
begin FastClick(False); end;
Wait(124+Random(193));
End;
Procedure RightClickSpot(X1, Y1, X2, Y2: Integer);
var Y1NOBanner, Y2NOBanner: Integer;
Begin
Y1NOBanner:=Y1 - 50; Y2NOBanner:=Y2 - 50;
HumanMMouse(RandomRange(X1,X2),RandomRange(Y1NOBanner,Y2NOBanner),0,0);
Wait(9+Random(37));
FastClick(false);
Wait(124+Random(193));
End;
Procedure MinimizeEoCBar(ToDo: Boolean);
Var x, y: Integer;
Begin
If ToDo = True Then
Begin
If (FindColorTolerance(x, y, 13224393, 517, 263, 517, 263, 5)) Then
LeftClickSpot(505,318,510,324);
End Else
If ToDo = False Then
Begin
If (Not FindColorTolerance(x, y, 13224393, 517, 263, 517, 263, 5)) Then
LeftClickSpot(505,382,510,385);
End;
End;
Procedure CloseBankUp;
Var
x,y: Integer;
Begin
if(FindColorSpiralTolerance(x, y, 4106994, 196, 33, 200, 38, 15))then
begin
//Close Bank
if(Debug)then begin Writeln('Closing Bank'); end;
HumanMMouse(RandomRange(482,494),RandomRange(28,41),0,0);
Wait(9+Random(37));
FastClick(true);
Wait(327+Random(283));
end;
End;
Procedure WaitBurning;
Var
x,y,LogCount,Timer: Integer;
Begin
LogCount := InvCount;
MarkTime(Timer);
Repeat Begin
if(Debug)then begin Writeln('Waiting Till Idle : ' + IntToStr(TimeFromMark(Timer)) + ' / 8000'); end;
Wait(57+Random(57));
If InvCount < LogCount Then
Begin
if(Debug)then begin Writeln('We Burned a Log'); end;
MarkTime(Timer);
LogCount := InvCount;
End;
End; Until (TimeFromMark(Timer) > 8000) Or (InvCount < 1)
End;
procedure MainLoop;
var x, y: Integer;
var Done: Boolean;
var Timer: Integer;
begin
Writeln('Welcome to DraynorBonFires ' + ScriptVersion + ' by DannyRS');
Done := False;
Repeat Begin
Done := False;
If (Not LoggedIn) Or LobbyScreen Then
Exit;
IF (PinScreen) Then Begin InPin(Players[0].Pin); Continue; End;
CloseBankUp;
If(Not FindColorSpiralTolerance(x, y, 5293044, 307, 145, 330, 165, 20))then
Begin
LeftClickSpot(310, 200, 320, 210);
Wait(4224+Random(193));
if FindDTM(LogDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
if(Debug)then begin Writeln('LogDTM SEEN lighting'); end;
HumanMMouse(RandomRange(x-6,x+6),RandomRange(y-4,y+4),0,0);
ClickCurrent(False);
ChooseOptionMulti(['Light','ight']);
Wait(3445+Random(357));
end
End Else
Begin
LeftClickSpot(314, 180, 320, 185);
Wait(4224+Random(193));
End;
if(Debug)then begin Writeln('Pressing 1'); end;
TypeFast('1');
Wait(1345+Random(357));
If(FindColorSpiralTolerance(x, y, 16449021, 360, 236, 364, 242, 10))then
Begin
LeftClickSpot(340, 211, 379, 252);
End;
Wait(445+Random(357));
if(Debug)then begin Writeln('waiting till done'); end;
WaitBurning;
DragMouseSpot(182, 240, 187, 245);
If (WaitUptextMulti(['Bank', 'ank'], RandomRange(70,250))) Then
Begin
ClickCurrent(True);
End Else
Begin
DragMouseSpot(182, 212, 187, 217);
If (WaitUptextMulti(['Bank', 'ank'], RandomRange(70,250))) Then
Begin
ClickCurrent(True);
End Else
Begin
DragMouseSpot(255, 190, 264, 195);
If (WaitUptextMulti(['Bank', 'ank'], RandomRange(70,250))) Then
Begin
ClickCurrent(True);
End Else
Begin
TerminateScript;
End;
End;
End;
Wait(3645+Random(357));
If FindDTM(AshDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
Begin
if(Debug)then begin Writeln('AshDTM SEEN banking'); end;
HumanMMouse(RandomRange(x-6,x+6),RandomRange(y-4,y+4),0,0);
ClickCurrent(True);
Wait(445+Random(157));
End;
RightClickSpot(438, 146, 458, 160);
if (ChooseOptionMulti(['Withdraw-All','ithdraw-All'])) then begin end;
Wait(185+Random(257));
CloseBankUp;
//Exit; //DeBugging
if(Debug)then begin Writeln('End of Main Loop Reached'); end;
end;
Until (Done);
end;
Procedure SetMyDTM;
begin
if(Debug)then begin
Writeln('loading DTMs'); end;
LogDTM := DTMFromString('mAAEAAHiclc0xDkBAAETR2a0UCifRuQ4S0ZAtFDRuIiHRKBGu5gC+aJRrktdMMplQkrNSgRYlGvRIkaNGhwoZFiNNGHBiM2/3mDFixYEdSRzxYr1dbAL5Mz99cwMSng7r');
AshDTM := DTMFromString('mbQAAAHicY2VgYEhnYmBIYoLQ2UCcBcSpUJwBxGlAHAfEc6ZOZZg1eTLD6iWLGSb39jDMmz6NgQOoHx0zYsFgAABfAA0x');
end;
Procedure FreeMyDTM;
begin
FreeDTM(LogDTM);
FreeDTM(AshDTM);
end;
Procedure Setup;
Begin
{$IFDEF SIMBAMAJOR980}
SMART_SERVER := 10;
SMART_MEMBERS := TRUE;
SMART_SIGNED := TRUE;
SMART_SUPERDETAIL := FALSE;
{$ELSE}
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
{$ENDIF}
SetupSRL;
ClearDebug;
DeclarePlayers;
If (Not LoggedIn) Or LobbyScreen Then
TerminateScript;
ClickNorth(SRL_ANGLE_HIGH);
MakeCompass('W');
MinimizeEoCBar(False);
SetMyDTM;
AddOnTerminate('FreeMyDTM');
SmartSetRefresh(90);
End;
begin
Setup;
ActivateClient;
ClearDebug;
MainLoop;
end.
Last edited by DannyRS; 12-25-2012 at 09:58 PM.
Programming is like trying keep a wall of shifting sand up, you fix one thing but somewhere else starts crumbling
There are currently 1 users browsing this thread. (0 members and 1 guests)