okokokok
01-20-2013, 06:42 PM
Hello guys,
So it's been a while since i've released a script. Well here is my first rsps public script release.
This script is a fighter script. It kills the chaosdwarfs in the taverly dungeon on the server soulsplit.
Features to know before using the script:
- The script is made for legend and extreme accounts. This means there is no prayer support.
- The script also has no potion support. (Might add that later).
- The script loots charm, well at least sometimes. Going to try and fix this in a later version.
Features that might be added in future version:
- Better charm looting (Will be added for sure).
- Area Check (walk back if you are too far from the chaos dwarfs).
- Potion Support.
- Bank walk (If out of potions, the script will go to the bank and return).
Features that will not be added for sure:
- Sir and Lord support. These modes are so fast, don't be lazy and just do it yourself :D
My experience:
So i have tested the script and it ran pretty good for me. I originally used this script at an other location (still do :P).
But since there are only a few servers, i'm not going to give that location up haha. The charm looting system works perfect there, so that's why i have to adjust the charm looting.
Also i enjoyed making this script a lot and it brought back some good old memories :D
Anyway i hope you guys enjoy the script!
PS:
If you are playing on the client, make sure to enlarge the window. Without the black spaces next to the game, the script will think you are always in combat and won't work! Also i couldn't attach this script as a .simba file, because i didn't have enough upload space :S
program ChaosDwarfKillerPublicReleaseV1;
{$include srl/srl.simba}
procedure AntiBan;
begin
if (not(LoggedIn)) then
Exit;
Case Random (500) of
0..15: BoredHuman;
50..65: PickUpMouse;
90..105: RandomRClick;
115..120: RandomMovement;
160..180: ExamineInv;
230..250:
begin
HoverSkill('random', false);
sleepandmovemouse(276 + Random(100));
PickUpMouse;
ChooseOption('Cancel');
SetAngle(SRL_ANGLE_HIGH);
end;
300..320: BoredHuman;
350..390: PickUpMouse;
420..450: RandomRClick;
280..299: RandomMovement;
460..480: SleepAndMoveMouse(3000 + Random(500));
end;
end;
function MonsterColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
R, G, B: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.07, 0.22);
if not (FindColorsTolerance(arP, 11389410, MSX1, MSY1, MSX2, MSY2, 5)) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToRGB(arC[i], R, G, B);
if (R >= 219) and (R <= 232) and (G >= 191) and (G <= 212) and (B >= 157) and (B <= 190) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 54.52) and (X <= 65.45) and (Y >= 55.37) and (Y <= 67.27) and (Z >= 40.14) and (Z <= 57.68) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function MithSqColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 6242625, MSX1, MSY1, MSX2, MSY2, 23);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 66.65) and (H <= 66.69) and (S >= 18.78) and (S <= 19.37) and (L >= 26.06) and (L <= 36.49) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 4.23) and (X <= 8.31) and (Y >= 3.97) and (Y <= 7.70) and (Z >= 7.92) and (Z <= 16.10) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function WaterRuneColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 11016981, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 65.97) and (H <= 66.01) and (S >= 77.76) and (S <= 77.80) and (L >= 37.04) and (L <= 37.08) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 7.75) and (X <= 7.79) and (Y >= 3.75) and (Y <= 3.79) and (Z >= 37.33) and (Z <= 37.37) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function GoldCharmColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 4878211, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 10.80) and (H <= 10.84) and (S >= 27.78) and (S <= 27.82) and (L >= 40.18) and (L <= 40.22) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 16.26) and (X <= 16.30) and (Y >= 16.67) and (Y <= 16.71) and (Z >= 8.82) and (Z <= 8.86) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function CrimsonCharmColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 3158886, MSX1, MSY1, MSX2, MSY2, 13);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 0.81) and (H <= 1.00) and (S >= 26.65) and (S <= 45.97) and (L >= 29.00) and (L <= 29.43) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 6.85) and (X <= 7.49) and (Y >= 5.12) and (Y <= 5.66) and (Z >= 2.59) and (Z <= 4.36) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function Click(): boolean;
var
x, y, w, h: integer;
B: TBox;
begin
GetMousePos(x, y);
w := 525;
h := 338;
GetClientDimensions(w, h);
B := IntToBox(x - 15, y - 15, x + 15, y + 15);
if B.x1 < 0 then B.x1 := 0;
if B.y1 < 0 then B.y1 := 0;
if B.x2 > w then B.x2 := w;
if B.y2 > h then B.y2 := h;
begin
if findColorTolerance(x, y, 62713, B.x1, B.y1, B.x2, B.y2, 20) then
begin
Result := True
Exit;
end;
end;
end;
Function YellowClick: Boolean;
begin
Result := Click;
end;
Function RedClick: Boolean;
begin
Result := Not Click;
end;
function FindRedBar : Boolean; //returns True if a full red hp bar is found
var
RedBarDTM1, RedBarDTM2,x,y : Integer;
begin
Result := False;
RedBarDTM1 := DTMFromString('mVAEAAHicE2BgYGBkZGCQhmJOIP4BFHsFxM +A+CUDhM8CFOdlhKj9AuT/Z4CoBbFdgLQTELsBsTsShonDMLKcIxSDxHewcjN4A80JZmZg8O JgYPBjZ2CwBNJxQH4ekyBDE5Dfys/NEMDDwODLy8DgycbAEMTEwOANxA1AOUoBI4UYHQAAHuAS8A==' ); //two DTMs just in case
RedBarDTM2 := DTMFromString('mwQAAAHic42RgYGBnZGB4B6SVgLQ0EH8Csn 8DMTeQzQLEnED8jQmCvwLxDyj+AsUg9k8g3sTKyNAA1FcvJszQ zMDKkMPKwNDExcnQxsfL0AqU92EgDjASgeEAAOCeEO4=');
if FindDTM(RedBarDTM1,x,y,MSX1,MSY1,MSX2,MSY2) or
FindDTM(RedBarDTM2,x,y,MSX1,MSY1,MSX2,MSY2) then
begin
Result := True;
end;
FreeDTM(RedBarDTM1);
FreeDTM(RedBarDTM2);
end;
Function Moving: Boolean;
var
MovingBox: Tbox;
begin
MovingBox := IntToBox(259, 133, 272, 151);
Result := (AveragePixelShift(MovingBox, 500, 300) > 80);
end;
Function InFight: Boolean;
var
InFightBox: Tbox;
begin
InFightBox := IntToBox(260, 137, 277, 185);
Result := (AveragePixelShift(InFightBox, 500, 300) > 100);
end;
procedure MarkTimer;
var TimeMarker: Integer;
begin
TimeMarker := GetSystemTime;
end;
function TimeFromMarker(TimeMarker: Integer): Integer;
begin
Result := GetSystemTime - TimeMarker;
end;
procedure TimeFailsafe;
var i: Integer;
begin
MarkTime(i);
wait(100);
end;
Procedure Looting;
var x,y,GoldCharmDTM1,GoldCharmDTM2,GoldCharmDTM3: Integer;
begin
GoldCharmDTM1 := DTMFromString('m5wEAAHicE2dgYFjDyMCwAogXAPE8IJ4IxH 1APAHKngGVWwbEK4F4HRBvAeJdQLwXiA8D8QkkfACItwLxBiBe AsSLgHgh1GwYXgw1bzkUL0OikfEKqPgSJPfBsLa6DAo+tmMqHI MAMhum5v8EBzAfRMP4yBimjpaAkYYYBwAAcqY3kA==');
GoldCharmDTM2 := DTMFromString('m/AEAAHictcw9CoNAEAXg2VtY2KfwEt7QCNEum5gf3dLCQizEIgT JpeIbeMpiSLkPPnbhzUwkIoMR6aAFB3e4goUznCCjHEp2NXd0f 4QXzPDxTPDgvLpRxduXXffkXdXsOKo5a7mv+R5TSQ7xj3dfbK/ys3a6q9G/H78LGRPYvyxb1DFs');
GoldCharmDTM3 := DTMFromString('muQIAAHiczc4tCwJBEMbx2e9hMRn8En5C8Q WTcr6gdxcNCgaDXDjEZhGLBpPBIGLX/547sCwcRh34wcyy8+xWRWRtRJaYI8EUEQbooOm00UUfI6RYmM9 +hi32OOCEC66444kHbjjjiB1ybLw3rYkTBezZDLH7Z1oiKRF72 WOXOfTyX62G1GuVQr7qFfxeZ1t6T+ewNEv7kO7aXvO0/3WZP/C13kmfTV4=');
If FindColor(x,y,GoldCharmColor,MSX1,MSY1,MSX2,MSY2) or
FindColor(x,y,MithSqColor,MSX1,MSY1,MSX2,MSY2) or
FindColor(x,y,WaterRuneColor,MSX1,MSY1,MSX2,MSY2) or
FindColor(x,y,CrimsonCharmColor,MSX1,MSY1,MSX2,MSY 2) then
begin
Writeln('Found Charm');
MMouse(x,y,5,5)
Wait(50 + Random(50));
Mouse(x,y,5,5,false);
If FindDTM(GoldCharmDTM1,x,y,MSX1,MSY1,MSX2,MSY2) or
FindDTM(GoldCharmDTM2,x,y,MSX1,MSY1,MSX2,MSY2) or
FindDTM(GoldCharmDTM3,x,y,MSX1,MSY1,MSX2,MSY2) then
begin
Wait(100 + Random(50));
MMouse(x,y,5,5);
Mouse(x,y,5,5,true);
Wait(100 + Random(50));
end;
end;
FreeDTM(GoldCharmDTM1);
FreeDTM(GoldCharmDTM2);
FreeDTM(GoldCharmDTM3);
end;
procedure FailsafeFight;
var x,y,i,r,ChaosDwarfOptionDTM1,ChaosDwarfOptionDTM2, ChaosDwarfOptionDTM3: Integer;
ChaosDwarf: Array [0..8] of Integer;
aFound: Extended;
begin
SetAngle(SRL_ANGLE_HIGH);
ClearDebug;
AntiBan;
ChaosDwarf[0] := DTMFromString('mQwAAAHicY2ZgYPgExF+A+CsQFwBxDhDnA3 FhVhZDV2MDmEYGjEgYCABxVAhC');
ChaosDwarf[1] := DTMFromString('mQwAAAHicY2ZgYPgGxF+A+DsQlwBxERAXAL GvvjJDRUE+Q0d9HQMyYETCQAAAXOgHuQ==');
ChaosDwarf[2] := DTMFromString('mQwAAAHicY2ZgYHgDxe+AOBuIM4E4B4jDAw MZkqKjGYK8vRmQASMSBgIARPwHBg==');
ChaosDwarf[3] := DTMFromString('mQwAAAHicY2ZgYPgCxB+gdCIUpwBxa3U1Q0 N5OUNuaioDMmBEwkAAAGxdCCU=');
ChaosDwarf[4] := DTMFromString('mQwAAAHicY2ZgYLjGyMBwhRFCbwbytwDxNi DOTk5myExMZEhLiGNABoxIGAgAb/0IJw==');
ChaosDwarf[5] := DTMFromString('mQwAAAHicY2ZgYGBiAhEMDCxAbAFkWgKxFR DXqMuBcb26AgMyYETCQAAAcdcDBg==');
ChaosDwarf[6] := DTMFromString('mQwAAAHicY2ZgYFjIyMAwD4gXAXEOAwTnAX FHfR1DT3MTw5TOTgZkwIiEgQAATSYH7Q==');
ChaosDwarf[7] := DTMFromString('mQwAAAHicY2ZgYPjACMGfgVgLyFdjgNCBVq oM/l6eDDHO2gzIgBEJAwEADxgFsw==');
ChaosDwarf[8] := DTMFromString('mQwAAAHicY2ZgYPjCyMDwCYqlGCBYBojbNJ UZ6tUVGJo1FRiQASMSBgIACucFlg==');
ChaosDwarfOptionDTM1 := DTMFromString('mFQEAAHic42VgYGBjZGBgAuI/QPZXIP4ExF+AmAEoxgrEXEAsDMRSQCwNxBJAXALEBUgYxC8H4g osGCSXD8Ta6jIMx3ZMBWMQgNEgcWQ5ZHFyACMZGAUAAAjEGJM= ');
ChaosDwarfOptionDTM2 := DTMFromString('mUAIAAHicvcwxCsJAEIXhCUoqsUihQdJFCE Q7GysLCTlP1Jh4Ee/iCTyQaKfEf3Ajg4WkyoOPXd7sTiQiU08kRIARfAzwZPbADXfnh SGzMSaYYY4lVlhjgy1yZK7TeYoYJQocjMLY44jaOHWgeyv3f2f 2XS9n0ei5SKIv29vYuWqaT9eeGr3/vtfO9n3F69m/vAHyYTBF');
ChaosDwarfOptionDTM3 := DTMFromString('mYQMAAHic1c09CsJAEIbhDYiNIIKNiJWFv4 WNhYVYeAPFRhArsdPIGkQP4l08gQcSC8EivqOzuISAtvngYchk Z6ZtjOkHHz100EIdVVRQRhEF5JGDwZPywF3dlLwp6XxD9w4wwh hTzLHEGhtsscICM0z07VBnD4hUiJ2KvCr2ynpvHKt7TimOP7j7 1hMmbrp0mzUTx9/qR3rXy/ldHfctVZL8L/x5iex1N9ydZC+tn4UEGfB3XvjURAY=');
If not InFight then
begin
for r:= 0 to 8 do
If FindDTMRotated(ChaosDwarf[r],x,y,MSX1,MSY1,MSX2,MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
Writeln('Found Monster');
MMouse(x,y,0,0);
case Random(2) of
0:
begin
Mouse(x,y,0,0,false);
Wait(100 + Random(50));
If FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX2,MS Y2) then
begin
Wait(50 + Random(50));
MMouse(x,y,5,5);
Mouse(x,y,5,5,true);
Wait(50 + Random(50));
Writeln('Fucking it hard');
end;
If not(FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX 2,MSY2)) then
begin
FailsafeFight;
end;
end;
1:
begin
Mouse(x,y,0,0,false);
Wait(100 + Random(50));
If FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX2,MS Y2) then
begin
Wait(50 + Random(50));
MMouse(x,y,5,5);
Mouse(x,y,5,5,true);
Wait(50 + Random(50));
Writeln('Fucking it hard');
end;
If not(FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX 2,MSY2)) then
begin
FailsafeFight;
end;
end;
end;
end;
FreeDTM(ChaosDwarf[1]);
FreeDTM(ChaosDwarf[2]);
FreeDTM(ChaosDwarf[3]);
FreeDTM(ChaosDwarf[4]);
FreeDTM(ChaosDwarf[5]);
FreeDTM(ChaosDwarf[6]);
FreeDTM(ChaosDwarf[7]);
FreeDTM(ChaosDwarf[8]);
FreeDTM(ChaosDwarf[0]);
FreeDTM(ChaosDwarfOptionDTM1);
FreeDTM(ChaosDwarfOptionDTM2);
FreeDTM(ChaosDwarfOptionDTM3);
end;
procedure Fight;
var x,y,i,r,ChaosDwarfOptionDTM1,ChaosDwarfOptionDTM2, ChaosDwarfOptionDTM3: Integer;
ChaosDwarf: Array [0..8] of Integer;
aFound: Extended;
begin
SetAngle(SRL_ANGLE_HIGH);
ClearDebug;
AntiBan;
ChaosDwarf[0] := DTMFromString('mQwAAAHicY2ZgYPgExF+A+CsQFwBxDhDnA3 FhVhZDV2MDmEYGjEgYCABxVAhC');
ChaosDwarf[1] := DTMFromString('mQwAAAHicY2ZgYPgGxF+A+DsQlwBxERAXAL GvvjJDRUE+Q0d9HQMyYETCQAAAXOgHuQ==');
ChaosDwarf[2] := DTMFromString('mQwAAAHicY2ZgYHgDxe+AOBuIM4E4B4jDAw MZkqKjGYK8vRmQASMSBgIARPwHBg==');
ChaosDwarf[3] := DTMFromString('mQwAAAHicY2ZgYPgCxB+gdCIUpwBxa3U1Q0 N5OUNuaioDMmBEwkAAAGxdCCU=');
ChaosDwarf[4] := DTMFromString('mQwAAAHicY2ZgYLjGyMBwhRFCbwbytwDxNi DOTk5myExMZEhLiGNABoxIGAgAb/0IJw==');
ChaosDwarf[5] := DTMFromString('mQwAAAHicY2ZgYGBiAhEMDCxAbAFkWgKxFR DXqMuBcb26AgMyYETCQAAAcdcDBg==');
ChaosDwarf[6] := DTMFromString('mQwAAAHicY2ZgYFjIyMAwD4gXAXEOAwTnAX FHfR1DT3MTw5TOTgZkwIiEgQAATSYH7Q==');
ChaosDwarf[7] := DTMFromString('mQwAAAHicY2ZgYPjACMGfgVgLyFdjgNCBVq oM/l6eDDHO2gzIgBEJAwEADxgFsw==');
ChaosDwarf[8] := DTMFromString('mQwAAAHicY2ZgYPjCyMDwCYqlGCBYBojbNJ UZ6tUVGJo1FRiQASMSBgIACucFlg==');
ChaosDwarfOptionDTM1 := DTMFromString('mFQEAAHic42VgYGBjZGBgAuI/QPZXIP4ExF+AmAEoxgrEXEAsDMRSQCwNxBJAXALEBUgYxC8H4g osGCSXD8Ta6jIMx3ZMBWMQgNEgcWQ5ZHFyACMZGAUAAAjEGJM= ');
ChaosDwarfOptionDTM2 := DTMFromString('mUAIAAHicvcwxCsJAEIXhCUoqsUihQdJFCE Q7GysLCTlP1Jh4Ee/iCTyQaKfEf3Ajg4WkyoOPXd7sTiQiU08kRIARfAzwZPbADXfnh SGzMSaYYY4lVlhjgy1yZK7TeYoYJQocjMLY44jaOHWgeyv3f2f 2XS9n0ei5SKIv29vYuWqaT9eeGr3/vtfO9n3F69m/vAHyYTBF');
ChaosDwarfOptionDTM3 := DTMFromString('mYQMAAHic1c09CsJAEIbhDYiNIIKNiJWFv4 WNhYVYeAPFRhArsdPIGkQP4l08gQcSC8EivqOzuISAtvngYchk Z6ZtjOkHHz100EIdVVRQRhEF5JGDwZPywF3dlLwp6XxD9w4wwh hTzLHEGhtsscICM0z07VBnD4hUiJ2KvCr2ynpvHKt7TimOP7j7 1hMmbrp0mzUTx9/qR3rXy/ldHfctVZL8L/x5iex1N9ydZC+tn4UEGfB3XvjURAY=');
If not InFight then
begin
Looting;
Wait(1900 + Random(100));
for r:= 0 to 8 do
If FindDTMRotated(ChaosDwarf[r],x,y,MSX1,MSY1,MSX2,MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
Writeln('Found Monster');
MMouse(x,y,0,0);
case Random(10) of
0..4:
begin
Mouse(x,y,0,0,false);
Wait(100 + Random(50));
If FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX2,MS Y2) then
begin
Wait(50 + Random(50));
MMouse(x,y,5,5);
Mouse(x,y,5,5,true);
Wait(50 + Random(50));
Writeln('Fucking it hard');
end;
If not(FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX 2,MSY2)) then
begin
FailsafeFight;
end;
end;
5..9:
begin
Mouse(x,y,0,0,false);
Wait(100 + Random(50));
If FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX2,MS Y2) then
begin
Wait(50 + Random(50));
MMouse(x,y,5,5);
Mouse(x,y,5,5,true);
Wait(50 + Random(50));
Writeln('Fucking it hard');
end;
If not(FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX 2,MSY2)) then
begin
FailsafeFight;
end;
end;
10:
begin
Looting;
end;
end;
end;
If InFight then
begin
MarkTime(i);
Writeln('Already derpin');
repeat
Wait (2000 + Random(500));
until (not(InFight)) or (TimeFromMarker(i) >= 7000)
end;
If RedClick then
begin
Writeln('Clicked Attack');
Wait(1500 + Random(200));
end;
FreeDTM(ChaosDwarf[1]);
FreeDTM(ChaosDwarf[2]);
FreeDTM(ChaosDwarf[3]);
FreeDTM(ChaosDwarf[4]);
FreeDTM(ChaosDwarf[5]);
FreeDTM(ChaosDwarf[6]);
FreeDTM(ChaosDwarf[7]);
FreeDTM(ChaosDwarf[8]);
FreeDTM(ChaosDwarf[0]);
FreeDTM(ChaosDwarfOptionDTM1);
FreeDTM(ChaosDwarfOptionDTM2);
FreeDTM(ChaosDwarfOptionDTM3);
end;
procedure OneRun;
begin
AntiBan;
repeat
Fight;
until (InFight);
end;
begin
SetupSRL;
ClearDebug;
begin
repeat
OneRun;
until(false);
end;
end.
~okokokok
So it's been a while since i've released a script. Well here is my first rsps public script release.
This script is a fighter script. It kills the chaosdwarfs in the taverly dungeon on the server soulsplit.
Features to know before using the script:
- The script is made for legend and extreme accounts. This means there is no prayer support.
- The script also has no potion support. (Might add that later).
- The script loots charm, well at least sometimes. Going to try and fix this in a later version.
Features that might be added in future version:
- Better charm looting (Will be added for sure).
- Area Check (walk back if you are too far from the chaos dwarfs).
- Potion Support.
- Bank walk (If out of potions, the script will go to the bank and return).
Features that will not be added for sure:
- Sir and Lord support. These modes are so fast, don't be lazy and just do it yourself :D
My experience:
So i have tested the script and it ran pretty good for me. I originally used this script at an other location (still do :P).
But since there are only a few servers, i'm not going to give that location up haha. The charm looting system works perfect there, so that's why i have to adjust the charm looting.
Also i enjoyed making this script a lot and it brought back some good old memories :D
Anyway i hope you guys enjoy the script!
PS:
If you are playing on the client, make sure to enlarge the window. Without the black spaces next to the game, the script will think you are always in combat and won't work! Also i couldn't attach this script as a .simba file, because i didn't have enough upload space :S
program ChaosDwarfKillerPublicReleaseV1;
{$include srl/srl.simba}
procedure AntiBan;
begin
if (not(LoggedIn)) then
Exit;
Case Random (500) of
0..15: BoredHuman;
50..65: PickUpMouse;
90..105: RandomRClick;
115..120: RandomMovement;
160..180: ExamineInv;
230..250:
begin
HoverSkill('random', false);
sleepandmovemouse(276 + Random(100));
PickUpMouse;
ChooseOption('Cancel');
SetAngle(SRL_ANGLE_HIGH);
end;
300..320: BoredHuman;
350..390: PickUpMouse;
420..450: RandomRClick;
280..299: RandomMovement;
460..480: SleepAndMoveMouse(3000 + Random(500));
end;
end;
function MonsterColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
R, G, B: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.07, 0.22);
if not (FindColorsTolerance(arP, 11389410, MSX1, MSY1, MSX2, MSY2, 5)) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToRGB(arC[i], R, G, B);
if (R >= 219) and (R <= 232) and (G >= 191) and (G <= 212) and (B >= 157) and (B <= 190) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 54.52) and (X <= 65.45) and (Y >= 55.37) and (Y <= 67.27) and (Z >= 40.14) and (Z <= 57.68) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function MithSqColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 6242625, MSX1, MSY1, MSX2, MSY2, 23);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 66.65) and (H <= 66.69) and (S >= 18.78) and (S <= 19.37) and (L >= 26.06) and (L <= 36.49) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 4.23) and (X <= 8.31) and (Y >= 3.97) and (Y <= 7.70) and (Z >= 7.92) and (Z <= 16.10) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function WaterRuneColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 11016981, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 65.97) and (H <= 66.01) and (S >= 77.76) and (S <= 77.80) and (L >= 37.04) and (L <= 37.08) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 7.75) and (X <= 7.79) and (Y >= 3.75) and (Y <= 3.79) and (Z >= 37.33) and (Z <= 37.37) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function GoldCharmColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 4878211, MSX1, MSY1, MSX2, MSY2, 0);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 10.80) and (H <= 10.84) and (S >= 27.78) and (S <= 27.82) and (L >= 40.18) and (L <= 40.22) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 16.26) and (X <= 16.30) and (Y >= 16.67) and (Y <= 16.71) and (Z >= 8.82) and (Z <= 8.86) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function CrimsonCharmColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
H, S, L: Extended;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 3158886, MSX1, MSY1, MSX2, MSY2, 13);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToHSL(arC[i], H, S, L);
if (H >= 0.81) and (H <= 1.00) and (S >= 26.65) and (S <= 45.97) and (L >= 29.00) and (L <= 29.43) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 6.85) and (X <= 7.49) and (Y >= 5.12) and (Y <= 5.66) and (Z >= 2.59) and (Z <= 4.36) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
end;
ColorToleranceSpeed(tmpCTS);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function Click(): boolean;
var
x, y, w, h: integer;
B: TBox;
begin
GetMousePos(x, y);
w := 525;
h := 338;
GetClientDimensions(w, h);
B := IntToBox(x - 15, y - 15, x + 15, y + 15);
if B.x1 < 0 then B.x1 := 0;
if B.y1 < 0 then B.y1 := 0;
if B.x2 > w then B.x2 := w;
if B.y2 > h then B.y2 := h;
begin
if findColorTolerance(x, y, 62713, B.x1, B.y1, B.x2, B.y2, 20) then
begin
Result := True
Exit;
end;
end;
end;
Function YellowClick: Boolean;
begin
Result := Click;
end;
Function RedClick: Boolean;
begin
Result := Not Click;
end;
function FindRedBar : Boolean; //returns True if a full red hp bar is found
var
RedBarDTM1, RedBarDTM2,x,y : Integer;
begin
Result := False;
RedBarDTM1 := DTMFromString('mVAEAAHicE2BgYGBkZGCQhmJOIP4BFHsFxM +A+CUDhM8CFOdlhKj9AuT/Z4CoBbFdgLQTELsBsTsShonDMLKcIxSDxHewcjN4A80JZmZg8O JgYPBjZ2CwBNJxQH4ekyBDE5Dfys/NEMDDwODLy8DgycbAEMTEwOANxA1AOUoBI4UYHQAAHuAS8A==' ); //two DTMs just in case
RedBarDTM2 := DTMFromString('mwQAAAHic42RgYGBnZGB4B6SVgLQ0EH8Csn 8DMTeQzQLEnED8jQmCvwLxDyj+AsUg9k8g3sTKyNAA1FcvJszQ zMDKkMPKwNDExcnQxsfL0AqU92EgDjASgeEAAOCeEO4=');
if FindDTM(RedBarDTM1,x,y,MSX1,MSY1,MSX2,MSY2) or
FindDTM(RedBarDTM2,x,y,MSX1,MSY1,MSX2,MSY2) then
begin
Result := True;
end;
FreeDTM(RedBarDTM1);
FreeDTM(RedBarDTM2);
end;
Function Moving: Boolean;
var
MovingBox: Tbox;
begin
MovingBox := IntToBox(259, 133, 272, 151);
Result := (AveragePixelShift(MovingBox, 500, 300) > 80);
end;
Function InFight: Boolean;
var
InFightBox: Tbox;
begin
InFightBox := IntToBox(260, 137, 277, 185);
Result := (AveragePixelShift(InFightBox, 500, 300) > 100);
end;
procedure MarkTimer;
var TimeMarker: Integer;
begin
TimeMarker := GetSystemTime;
end;
function TimeFromMarker(TimeMarker: Integer): Integer;
begin
Result := GetSystemTime - TimeMarker;
end;
procedure TimeFailsafe;
var i: Integer;
begin
MarkTime(i);
wait(100);
end;
Procedure Looting;
var x,y,GoldCharmDTM1,GoldCharmDTM2,GoldCharmDTM3: Integer;
begin
GoldCharmDTM1 := DTMFromString('m5wEAAHicE2dgYFjDyMCwAogXAPE8IJ4IxH 1APAHKngGVWwbEK4F4HRBvAeJdQLwXiA8D8QkkfACItwLxBiBe AsSLgHgh1GwYXgw1bzkUL0OikfEKqPgSJPfBsLa6DAo+tmMqHI MAMhum5v8EBzAfRMP4yBimjpaAkYYYBwAAcqY3kA==');
GoldCharmDTM2 := DTMFromString('m/AEAAHictcw9CoNAEAXg2VtY2KfwEt7QCNEum5gf3dLCQizEIgT JpeIbeMpiSLkPPnbhzUwkIoMR6aAFB3e4goUznCCjHEp2NXd0f 4QXzPDxTPDgvLpRxduXXffkXdXsOKo5a7mv+R5TSQ7xj3dfbK/ys3a6q9G/H78LGRPYvyxb1DFs');
GoldCharmDTM3 := DTMFromString('muQIAAHiczc4tCwJBEMbx2e9hMRn8En5C8Q WTcr6gdxcNCgaDXDjEZhGLBpPBIGLX/547sCwcRh34wcyy8+xWRWRtRJaYI8EUEQbooOm00UUfI6RYmM9 +hi32OOCEC66444kHbjjjiB1ybLw3rYkTBezZDLH7Z1oiKRF72 WOXOfTyX62G1GuVQr7qFfxeZ1t6T+ewNEv7kO7aXvO0/3WZP/C13kmfTV4=');
If FindColor(x,y,GoldCharmColor,MSX1,MSY1,MSX2,MSY2) or
FindColor(x,y,MithSqColor,MSX1,MSY1,MSX2,MSY2) or
FindColor(x,y,WaterRuneColor,MSX1,MSY1,MSX2,MSY2) or
FindColor(x,y,CrimsonCharmColor,MSX1,MSY1,MSX2,MSY 2) then
begin
Writeln('Found Charm');
MMouse(x,y,5,5)
Wait(50 + Random(50));
Mouse(x,y,5,5,false);
If FindDTM(GoldCharmDTM1,x,y,MSX1,MSY1,MSX2,MSY2) or
FindDTM(GoldCharmDTM2,x,y,MSX1,MSY1,MSX2,MSY2) or
FindDTM(GoldCharmDTM3,x,y,MSX1,MSY1,MSX2,MSY2) then
begin
Wait(100 + Random(50));
MMouse(x,y,5,5);
Mouse(x,y,5,5,true);
Wait(100 + Random(50));
end;
end;
FreeDTM(GoldCharmDTM1);
FreeDTM(GoldCharmDTM2);
FreeDTM(GoldCharmDTM3);
end;
procedure FailsafeFight;
var x,y,i,r,ChaosDwarfOptionDTM1,ChaosDwarfOptionDTM2, ChaosDwarfOptionDTM3: Integer;
ChaosDwarf: Array [0..8] of Integer;
aFound: Extended;
begin
SetAngle(SRL_ANGLE_HIGH);
ClearDebug;
AntiBan;
ChaosDwarf[0] := DTMFromString('mQwAAAHicY2ZgYPgExF+A+CsQFwBxDhDnA3 FhVhZDV2MDmEYGjEgYCABxVAhC');
ChaosDwarf[1] := DTMFromString('mQwAAAHicY2ZgYPgGxF+A+DsQlwBxERAXAL GvvjJDRUE+Q0d9HQMyYETCQAAAXOgHuQ==');
ChaosDwarf[2] := DTMFromString('mQwAAAHicY2ZgYHgDxe+AOBuIM4E4B4jDAw MZkqKjGYK8vRmQASMSBgIARPwHBg==');
ChaosDwarf[3] := DTMFromString('mQwAAAHicY2ZgYPgCxB+gdCIUpwBxa3U1Q0 N5OUNuaioDMmBEwkAAAGxdCCU=');
ChaosDwarf[4] := DTMFromString('mQwAAAHicY2ZgYLjGyMBwhRFCbwbytwDxNi DOTk5myExMZEhLiGNABoxIGAgAb/0IJw==');
ChaosDwarf[5] := DTMFromString('mQwAAAHicY2ZgYGBiAhEMDCxAbAFkWgKxFR DXqMuBcb26AgMyYETCQAAAcdcDBg==');
ChaosDwarf[6] := DTMFromString('mQwAAAHicY2ZgYFjIyMAwD4gXAXEOAwTnAX FHfR1DT3MTw5TOTgZkwIiEgQAATSYH7Q==');
ChaosDwarf[7] := DTMFromString('mQwAAAHicY2ZgYPjACMGfgVgLyFdjgNCBVq oM/l6eDDHO2gzIgBEJAwEADxgFsw==');
ChaosDwarf[8] := DTMFromString('mQwAAAHicY2ZgYPjCyMDwCYqlGCBYBojbNJ UZ6tUVGJo1FRiQASMSBgIACucFlg==');
ChaosDwarfOptionDTM1 := DTMFromString('mFQEAAHic42VgYGBjZGBgAuI/QPZXIP4ExF+AmAEoxgrEXEAsDMRSQCwNxBJAXALEBUgYxC8H4g osGCSXD8Ta6jIMx3ZMBWMQgNEgcWQ5ZHFyACMZGAUAAAjEGJM= ');
ChaosDwarfOptionDTM2 := DTMFromString('mUAIAAHicvcwxCsJAEIXhCUoqsUihQdJFCE Q7GysLCTlP1Jh4Ee/iCTyQaKfEf3Ajg4WkyoOPXd7sTiQiU08kRIARfAzwZPbADXfnh SGzMSaYYY4lVlhjgy1yZK7TeYoYJQocjMLY44jaOHWgeyv3f2f 2XS9n0ei5SKIv29vYuWqaT9eeGr3/vtfO9n3F69m/vAHyYTBF');
ChaosDwarfOptionDTM3 := DTMFromString('mYQMAAHic1c09CsJAEIbhDYiNIIKNiJWFv4 WNhYVYeAPFRhArsdPIGkQP4l08gQcSC8EivqOzuISAtvngYchk Z6ZtjOkHHz100EIdVVRQRhEF5JGDwZPywF3dlLwp6XxD9w4wwh hTzLHEGhtsscICM0z07VBnD4hUiJ2KvCr2ynpvHKt7TimOP7j7 1hMmbrp0mzUTx9/qR3rXy/ldHfctVZL8L/x5iex1N9ydZC+tn4UEGfB3XvjURAY=');
If not InFight then
begin
for r:= 0 to 8 do
If FindDTMRotated(ChaosDwarf[r],x,y,MSX1,MSY1,MSX2,MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
Writeln('Found Monster');
MMouse(x,y,0,0);
case Random(2) of
0:
begin
Mouse(x,y,0,0,false);
Wait(100 + Random(50));
If FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX2,MS Y2) then
begin
Wait(50 + Random(50));
MMouse(x,y,5,5);
Mouse(x,y,5,5,true);
Wait(50 + Random(50));
Writeln('Fucking it hard');
end;
If not(FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX 2,MSY2)) then
begin
FailsafeFight;
end;
end;
1:
begin
Mouse(x,y,0,0,false);
Wait(100 + Random(50));
If FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX2,MS Y2) then
begin
Wait(50 + Random(50));
MMouse(x,y,5,5);
Mouse(x,y,5,5,true);
Wait(50 + Random(50));
Writeln('Fucking it hard');
end;
If not(FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX 2,MSY2)) then
begin
FailsafeFight;
end;
end;
end;
end;
FreeDTM(ChaosDwarf[1]);
FreeDTM(ChaosDwarf[2]);
FreeDTM(ChaosDwarf[3]);
FreeDTM(ChaosDwarf[4]);
FreeDTM(ChaosDwarf[5]);
FreeDTM(ChaosDwarf[6]);
FreeDTM(ChaosDwarf[7]);
FreeDTM(ChaosDwarf[8]);
FreeDTM(ChaosDwarf[0]);
FreeDTM(ChaosDwarfOptionDTM1);
FreeDTM(ChaosDwarfOptionDTM2);
FreeDTM(ChaosDwarfOptionDTM3);
end;
procedure Fight;
var x,y,i,r,ChaosDwarfOptionDTM1,ChaosDwarfOptionDTM2, ChaosDwarfOptionDTM3: Integer;
ChaosDwarf: Array [0..8] of Integer;
aFound: Extended;
begin
SetAngle(SRL_ANGLE_HIGH);
ClearDebug;
AntiBan;
ChaosDwarf[0] := DTMFromString('mQwAAAHicY2ZgYPgExF+A+CsQFwBxDhDnA3 FhVhZDV2MDmEYGjEgYCABxVAhC');
ChaosDwarf[1] := DTMFromString('mQwAAAHicY2ZgYPgGxF+A+DsQlwBxERAXAL GvvjJDRUE+Q0d9HQMyYETCQAAAXOgHuQ==');
ChaosDwarf[2] := DTMFromString('mQwAAAHicY2ZgYHgDxe+AOBuIM4E4B4jDAw MZkqKjGYK8vRmQASMSBgIARPwHBg==');
ChaosDwarf[3] := DTMFromString('mQwAAAHicY2ZgYPgCxB+gdCIUpwBxa3U1Q0 N5OUNuaioDMmBEwkAAAGxdCCU=');
ChaosDwarf[4] := DTMFromString('mQwAAAHicY2ZgYLjGyMBwhRFCbwbytwDxNi DOTk5myExMZEhLiGNABoxIGAgAb/0IJw==');
ChaosDwarf[5] := DTMFromString('mQwAAAHicY2ZgYGBiAhEMDCxAbAFkWgKxFR DXqMuBcb26AgMyYETCQAAAcdcDBg==');
ChaosDwarf[6] := DTMFromString('mQwAAAHicY2ZgYFjIyMAwD4gXAXEOAwTnAX FHfR1DT3MTw5TOTgZkwIiEgQAATSYH7Q==');
ChaosDwarf[7] := DTMFromString('mQwAAAHicY2ZgYPjACMGfgVgLyFdjgNCBVq oM/l6eDDHO2gzIgBEJAwEADxgFsw==');
ChaosDwarf[8] := DTMFromString('mQwAAAHicY2ZgYPjCyMDwCYqlGCBYBojbNJ UZ6tUVGJo1FRiQASMSBgIACucFlg==');
ChaosDwarfOptionDTM1 := DTMFromString('mFQEAAHic42VgYGBjZGBgAuI/QPZXIP4ExF+AmAEoxgrEXEAsDMRSQCwNxBJAXALEBUgYxC8H4g osGCSXD8Ta6jIMx3ZMBWMQgNEgcWQ5ZHFyACMZGAUAAAjEGJM= ');
ChaosDwarfOptionDTM2 := DTMFromString('mUAIAAHicvcwxCsJAEIXhCUoqsUihQdJFCE Q7GysLCTlP1Jh4Ee/iCTyQaKfEf3Ajg4WkyoOPXd7sTiQiU08kRIARfAzwZPbADXfnh SGzMSaYYY4lVlhjgy1yZK7TeYoYJQocjMLY44jaOHWgeyv3f2f 2XS9n0ei5SKIv29vYuWqaT9eeGr3/vtfO9n3F69m/vAHyYTBF');
ChaosDwarfOptionDTM3 := DTMFromString('mYQMAAHic1c09CsJAEIbhDYiNIIKNiJWFv4 WNhYVYeAPFRhArsdPIGkQP4l08gQcSC8EivqOzuISAtvngYchk Z6ZtjOkHHz100EIdVVRQRhEF5JGDwZPywF3dlLwp6XxD9w4wwh hTzLHEGhtsscICM0z07VBnD4hUiJ2KvCr2ynpvHKt7TimOP7j7 1hMmbrp0mzUTx9/qR3rXy/ldHfctVZL8L/x5iex1N9ydZC+tn4UEGfB3XvjURAY=');
If not InFight then
begin
Looting;
Wait(1900 + Random(100));
for r:= 0 to 8 do
If FindDTMRotated(ChaosDwarf[r],x,y,MSX1,MSY1,MSX2,MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
Writeln('Found Monster');
MMouse(x,y,0,0);
case Random(10) of
0..4:
begin
Mouse(x,y,0,0,false);
Wait(100 + Random(50));
If FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX2,MS Y2) then
begin
Wait(50 + Random(50));
MMouse(x,y,5,5);
Mouse(x,y,5,5,true);
Wait(50 + Random(50));
Writeln('Fucking it hard');
end;
If not(FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX 2,MSY2)) then
begin
FailsafeFight;
end;
end;
5..9:
begin
Mouse(x,y,0,0,false);
Wait(100 + Random(50));
If FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX2,MS Y2) or
FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX2,MS Y2) then
begin
Wait(50 + Random(50));
MMouse(x,y,5,5);
Mouse(x,y,5,5,true);
Wait(50 + Random(50));
Writeln('Fucking it hard');
end;
If not(FindDTM(ChaosDwarfOptionDTM1,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM2,x,y,MSX1,MSY1,MSX 2,MSY2)) or
not(FindDTM(ChaosDwarfOptionDTM3,x,y,MSX1,MSY1,MSX 2,MSY2)) then
begin
FailsafeFight;
end;
end;
10:
begin
Looting;
end;
end;
end;
If InFight then
begin
MarkTime(i);
Writeln('Already derpin');
repeat
Wait (2000 + Random(500));
until (not(InFight)) or (TimeFromMarker(i) >= 7000)
end;
If RedClick then
begin
Writeln('Clicked Attack');
Wait(1500 + Random(200));
end;
FreeDTM(ChaosDwarf[1]);
FreeDTM(ChaosDwarf[2]);
FreeDTM(ChaosDwarf[3]);
FreeDTM(ChaosDwarf[4]);
FreeDTM(ChaosDwarf[5]);
FreeDTM(ChaosDwarf[6]);
FreeDTM(ChaosDwarf[7]);
FreeDTM(ChaosDwarf[8]);
FreeDTM(ChaosDwarf[0]);
FreeDTM(ChaosDwarfOptionDTM1);
FreeDTM(ChaosDwarfOptionDTM2);
FreeDTM(ChaosDwarfOptionDTM3);
end;
procedure OneRun;
begin
AntiBan;
repeat
Fight;
until (InFight);
end;
begin
SetupSRL;
ClearDebug;
begin
repeat
OneRun;
until(false);
end;
end.
~okokokok