Vinyl Scratch
2012-03-07 22:00:56
How Long have You Played Runescape?
5 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Pascal, Java, C++, HTML, PHP.
Are you a member of any other communities?
Sythe.org, Powerbot.org
Tell us about yourself…
Please show us one (or multiple) of your scripts.
5 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Pascal, Java, C++, HTML, PHP.
Are you a member of any other communities?
Sythe.org, Powerbot.org
Tell us about yourself…
From: xXTrollXx
I am getting better as I code each new script, and I hope that my scripts are good enough, as stated before, I want to spread my knowledge around for everyone, so that I may learn, and they may learn. I have been learning over these past couple of months, and I hope that my scripts are good enough.. I have been working on Script after script to get it working.. and I have Finally realized, that it is in the will of heart that gets you to be good enough. I think that I may be good enough, because I have been working on a Soul wars script, and a couple of other scripts as well. (I haven't been around to test and see if it works well, but It compiles, so I'm happy, lol.) I'll be posting 1 of my scripts, and one my soul wars script that isn't finished Hope you guys enjoy them!
Please show us one (or multiple) of your scripts.
My unfinished Soul Wars.
program SoulWars;
{$DEFINE SMART}
{$i SRL/SRL.scar}
{$i Reflection/Reflection.simba}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; // your username
Players[0].Pass := ''; // your password
Players[0].Nick := ''; // 3-4 letters of your username
Players[0].Active := True; //Use this player or not?
end;
{////////////////////////////////////////////////////////////////////////////////
Load Path
Path tiles for walking
////////////////////////////////////////////////////////////////////////////////}
function LoadPath(Path:Integer): TPointArray;
begin
if(Path = 0) then
begin
SetLength(Result, 1);
Result[0] := Point(1890, 3164);
end;
end;
{////////////////////////////////////////////////////////////////////////////////
Walk the Path
Walks path to Balance portal (nice and basic!) from any position in Soul Wars
using reflection. Colour Failsafes are attempted if reflection fails.
////////////////////////////////////////////////////////////////////////////////}
function WalkThePath(PathNo: integer): boolean;
var
p: integer;
Path: TPointArray;
begin
if not LoggedIn then
Exit;
Path := LoadPath(PathNo);
for p := 0 to High(Path) do
begin
WalkToTile(Path[p], 1, 0);
FFlag(0);
Writeln('Got to Balance Portal');
Result := True;
if Result = True then
begin
Exit;
end else
begin
Writeln('Reflection has Failed. Attemtping Colour failsafes.');
//Colour Failsafe
end;
end;
end;
{////////////////////////////////////////////////////////////////////////////////
TPA Mods
Works out the MidColour, Tolerance, Hue Modifier and Saturation Modifier
for TPA's based on inputted values
////////////////////////////////////////////////////////////////////////////////}
function TPAMods(var MidColour, Tolerance: integer; var HueMod, SatMod: Extended; Colors: TIntegerArray): boolean;
var
H, S, L, Tol: Extended;
i, ii: integer;
HSLColor: Array[1..3] of Extended;
HSL: Array[0..1] of Array[1..3] of Extended;
begin
for i := 0 to High(Colors) do
begin
ColortoHSL(Colors[i], HSLColor[1], HSLColor[2], HSLColor[3]);
for ii:= 1 to 3 do
begin
HSL[0][ii] := MinE(HSLColor[ii], HSL[0][ii]);
HSL[1][ii] := MaxE(HSLColor[ii], HSL[1][ii]);
end;
end;
H := HSL[1][1] - HSL[0][1];
S := HSL[1][2] - HSL[0][2];
L := HSL[1][3] - HSL[0][3];
MidColour := HSLToColor((HSL[1][1] + HSL[0][1]) div 2,(HSL[1][2] + HSL[0][2]) div 2,(HSL[1][3] + HSL[0][3]) div 2);
HueMod := (H/L);
SatMod := (S/L);
Tol := L;
if (MidColour <= 0) then
begin
WriteLn('TPA Variables not found.');
Result := False;
end else
Result := True;
Tolerance := Trunc(Tol + 0.5);
end;
{////////////////////////////////////////////////////////////////////////////////
Portal TPA
Works with TPA Mods above to find values for the Portal colours.
////////////////////////////////////////////////////////////////////////////////}
function PortalTPA: Boolean;
var
CTS, i, x, y, MiddleColour, Tolerance: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
HueModifier, SatModifier: Extended;
begin
TPAMods(MiddleColour, Tolerance, HueModifier, SatModifier, [
6856786, 8163985, 4953670, 3634498, 8501623, 4887108, 5411924,
6265429, 6470472, 4887620, 6265429, 8163985]);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HueModifier, SatModifier);
{
ClearDebug;
Writeln('Hue Modifier is: '+FloatToStr(HueModifier)+'');
Writeln('Saturation Modifier is: '+FloatToStr(SatModifier)+'');
Writeln('Middle Colour is: '+IntToStr(MiddleColour)+'');
Writeln('Tolerance is: '+IntToStr(Tolerance)+'');
}
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 6856786, MSX1, MSY1, MSX2, MSY2, 10);
SetColorSpeed2Modifiers(0.2, 0.2);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 15, 15);
for i := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
end;
Mouse(x, y, 0, 0, true);
end;
{////////////////////////////////////////////////////////////////////////////////
Enter Portal
Enters Balance Portal using reflection. If reflection fails, colour failsafe
attempts to click portal.
////////////////////////////////////////////////////////////////////////////////}
function Enter_Portal: Boolean;
var
x, y, portalID: Integer;
MSPoint: TPoint;
begin
portalID := GetObjectAt(Point(1890, 3163),0).ID;
if (portalID = 42031) then
begin
MSPoint := TileToMS(Point(1890, 3163), 10);
MMouse(MSPoint.x, MSPoint.y, 10, 5);
wait(100 + Random(30));
getMousePos(x, y);
Mouse(x, y, 1, 1, True);
Result := True;
Writeln('Clicked Balance Portal');
end else
begin
Writeln('Reflection has Failed. Attemtping Colour failsafes.');
PortalTPA;
Writeln('Clicked Balance Portal');
end;
end;
{////////////////////////////////////////////////////////////////////////////////
Script Setup
Standard Script Setting up stuff.
////////////////////////////////////////////////////////////////////////////////}
procedure Script_Setup;
begin
Smart_Signed := True;
Smart_Server := 59;
Smart_SuperDetail := False;
SetupSRL;
SetupReflection;
DeclarePlayers;
LoginPlayer;
end;
begin
Smart_Server := 97;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
setupSRL();
SPS_Setup(RUNESCAPE_SURFACE, ['0_12','1_12','2_12','1_13']);
writeln(SPS_GetMyPos);
FindJellies;
end.
My Trolling cowhides script.
program Trolls_Cowhide_Collecter;
{$DEFINE SMART}
{$IFDEF SMART}
{$i SRL/SRL/Misc/Smart.simba}
{$ENDIF}
{$i SRL/SRL.simba}
{$i SPS/SPS.simba}
const
SRLStats_Username = ''; //SRL Stats User
SRLStats_Pass = ''; //SRL Stats Pass
BreakEvery = '60'; //Break Every Log, Or Never.
BreakFor = '7'; //Break For How long, Now?
Version = '5.3'; // Don't Touch.
NumbOfPlayers = 1; //Number of Players That You Will Be using.
StartPlayer = 0; //Start Which Player?
var
X, Y, CowsKilled, DoorDTM : integer;
StartingXP: integer;
Drops: Array of String;
Path_ToBank : TPointArray;
aFound: Extended;
Path_ToCows : TPointArray;
procedure DeclarePlayers;
var
i: Integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
begin
Players[0].Name := ''; // Your Username.
Players[0].Pass := ''; // Your Password.
Players[0].Pin := ''; // Your Bank Pin. (Leave Blank If You Don't Have One.)
Players[0].Active := True; // Are you using this player?
Players[0].Member := True; // Are you a member?
end;
end;
Procedure ProgressReport;
var Exp: integer;
begin
ClearDebug;
Exp := (GetXPBarTotal - StartingXP);
writeLn('//=====================================\\');
writeLn('||=======Trolls Cowhide Collecter======||');
writeLn('||=======Time Running: ' + TimeRunning);
writeLn('||=======Cows: ' + IntToStr(CowsKilled));
writeLn('||=======Exp: ' + IntToStr(EXP));
writeLn('\\=====================================//');
end;
procedure SetupChar;
begin
SetupSRL();
SetAngle(0);
ClickNorth(0);
end;
procedure Startup;
begin
Smart_Server := 97;
Smart_Members := False;
Smart_Signed := False;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
LogInPlayer;
MouseSpeed := 21;
wait(100+random(100));
ProgressReport;
Path_ToBank := [Point(4866, 3590), Point(4853, 3593), Point(4839, 3596), Point(4828, 3610), Point(4804, 3616), Point(4790, 3616), Point(4773, 3616), Point(4728, 3618), Point(4704, 3609), Point(4695, 3582), Point(4691, 3555), Point(4691, 3555), Point(4655, 3545), Point(4628, 3543), Point(4593, 3531), Point(4567, 3517), Point(4589, 3478), Point(4583, 3437), Point(4556, 3417), Point(4541, 3400), Point(4547, 3390), Point(4556, 3383)];
Path_ToCows := [Point(4555, 3383), Point(4542, 3388), Point(4541, 3398), Point(4548, 3411), Point(4578, 3430), Point(4589, 3447), Point(4595, 3467), Point(4593, 3484), Point(4596, 3525), Point(4628, 3544), Point(4681, 3548), Point(4699, 3596), Point(4743, 3619), Point(4793, 3618), Point(4839, 3597), Point(4845, 3594), Point(4848, 3594), Point(4860, 3571)];
end;
procedure StatsGuise(Stats:String);
begin
Status(stats);
Disguise(stats);
end;
procedure AntiBan;
begin
case Random(250) of
0: begin StatsGuise('AntiBan') GameTab(tab_stats) HoverSkill ('Mining', false) GameTab(28); end;
1: begin StatsGuise('AntiBan') SleepAndMoveMouse (9000+random(600)); end;
2: begin StatsGuise('AntiBan') GameTab(tab_inv) ExamineInv; GameTab(28); end;
3: begin StatsGuise('AntiBan') RandomAngle(1); end;
4: begin StatsGuise('AntiBan') GameTab(tab_stats) HoverSkill ('Attack', false) GameTab(28); end;
5: begin StatsGuise('AntiBan') SleepAndMoveMouse (4000+random(250)); end;
6: begin StatsGuise('AntiBan') RandomAngle(2); end;
end;
end;
Function FindObjOnScreen(Color,Tolerance:Integer;MC2:Variant;Hmod,Smod:Extended): Boolean;
var
X,Y:Integer;
CTS,I,T: Integer;
TPA: TPointArray;
begin
repeat
Result := False;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Hmod,Smod);
FindColorsSpiralTolerance(MSCX, MSCY, TPA,(Color), MSX1, MSY1, MSX2, MSY2, Tolerance);
ColorToleranceSpeed(CTS);
if (Length(TPA) < 1) then
Exit;
MMouse(TPA[0].X, TPA[0].Y, 5, 5);
if WaitUpText('Take', 400) then
begin
GetMousePos(X, Y);
ClickMouse2(False);
ChooseOptionMulti(Drops);
Result := True;
Exit;
end;
Until(Result)
end;
procedure KillCow;
var
X, Y, PlusOne: Integer;
begin
if FindObjCustom(x, y, ['ttack', 'ow'], [3029313, 7507881, 6185837, 2638919], 7) Then
begin
StatsGuise('Cow! Attacking...')
GetMousePos(X, Y);
case Random(2) of
0: Mouse(X, Y, 5, 5, True);
1: begin
Mouse(X, Y, 5, 5, False);
WaitOption('ttack', 250);
end;
end;
Flag;
repeat
PlusOne := InvCount + 1;
AntiBan;
wait(100);
FindObjOnScreen(8290940,1,False,1.73,0.01);
wait(2000);
if InvCount=PlusOne then
WriteLn ('Killed the Cow.');
until (InvCount=PlusOne);
end;
end;
procedure LoadVars;
begin
Drops:=['ide'];
end;
function PickRunes:Boolean;
var
x, y: Integer;
Begin
x:=MSCX;
y:=MSCY;
begin
if FindObjCustom(x, y, ['ake'], [], 5) then
Mouse(x, y, 3, 3, False);
WaitOptionMulti(['ake', 'owhide'], 50);
wait(500+Random(300));
Writeln('There''s another cowhide!');
end;
end;
procedure Banking;
var Path_ToBank : TPointArray;
begin
Writeln('Walking to the bank');
if SPS_WalkPath(Path_ToBank) then
begin
writeln('We are at the bank!');
end;
begin
DoorDTM := DTMFromString('mAAEAAHic42FgYPjNyMBwC4ilmRgYZIH4LpD9GojZgOw/jBD8EYglgfw7QLodqKcRiHuAuA6JboCyQXQ3ELcxQNTa29ky+DmZMNia6TOEelgyGOmoMYR7WYPFrEx04bSPixWYZgfqIQUzkoiRAQADKhbv');
if FindDTMRotated(DoorDTM, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
MMouse(X, Y, 2, 2);
ClickMouse2(True);
Wait(2000+random(200));
if not FindDTM(DoorDTM, x, y, 0, 0, 700, 500) then
begin
Wait(1000+Random(500));
end;
end;
end;
end;
procedure ToCows;
var
Path_ToCows : TPointArray;
begin
WriteLn('Walking Back to the Cows');
if SPS_WalkPath(Path_ToCows) then
begin
WriteLn('We Are at the Cows');
end;
end;
procedure FreeDTMs;
begin
FreeDTM(DoorDTM);
end;
begin
Startup;
SPS_Areas := ['12_8','12_9','11_9','11_8'];
SPS_Setup(RUNESCAPE_SURFACE, SPS_Areas);
SetupChar;
LoadVars;
StatsGuise('Herro!');
AntiBan;
ProgressReport;
Banking;
repeat
repeat
KillCow;
Wait(500);
FindObjOnScreen(8290940,1,False,1.73,0.01);
Until InvFull;
Banking;
ToCows;
until(Not LoggedIn);
ProgressReport;
end.
(It wouldn't let me manage my attachments)