just saw you had over 70k views on this! gratz man
Printable View
just saw you had over 70k views on this! gratz man
Keeps happening after every few minutes...anyone wanna save me?Quote:
HoodzFighter version 2,5
Error: Exception: Mask is invalid. Width/Height: (9,6). WhiteHi/BlackHi: (-1,53) at line 778
The following DTMs were not freed: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, SRL - Lamp bitmap, SRL - Book of Knowledge, 23, 24, 25, 26, 27, 28, 29, 30]
The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Minimap Mask bitmap, 3]
Pops over the antirandoms tab when it does as well^ if that helps lol
Hey ive been having trouble starting this and I believe its because my OSRS-SLR folder is wack. Can some one that can at least get this working post their entire OSRS-SLR folder for me so I can try to figure out whats wrong?
by your numerous posts, inability to get it to work, and constant statement of OSRS-SLR im assuming you renamed the folder OSRS-SLR when infact it should be named SRL-OSR. if this isnt the case then delete your folder and reinstal the SRL-OSR master zip and extract it correctly
SRL not SLR
@Hoodz Hey so first off very nice script! I haven't ran it but I remember when this first came out and it was pretty much flawless then.
A few posts before I read that it might be outdated, is this still true?
Because when I compile it doesn't load "MiniReflection.simba" because I dont have that file, because I updated everything to work with @Elfyyy's PC script.
So my reflection is at: "C:\Simba\Includes\SRL-OSR\SRL\reflection" and the same thing with the antirandoms, instead of "C_AntiRandoms.simba" I have "C:\Simba\Includes\SRL-OSR\SRL\core\antirandoms\antirandoms.simba"
thanks!
enter the constants correctly
currrently revamping this script, but you can find a working version here:
Simba Code:program HoodFighter;
{$DEFINE SMART8}
{$I SRL-OSR/SRL.Simba}
{$I SRL-OSR/SRL/misc/al_functions.simba}
{$I SRL-OSR/SRL/Reflection/Reflection.simba}
var
x, y, hp, fooddtm, startcount, startxpskill, startxphp, gainedxpskill, gainedxphp, gainedxphourskill, gainedxphourhp: integer;
Hue, Sat: TExtendedArray;
MonsterColor, tol: TIntegerarray;
const
{player info}
NICKNAME = '';
USERNAME = '';
PASSWORD = '';
{hp/food info}
{salmon, shark, lobster, trout}
foodname = 'lobster';
{monster/npc info} {use ACA} {current setup: yaks}
{1}
monstercolor1 = 3225412;
hue1 = 0.16;
sat1 = 0.44;
tol1 = 14;
{second monster, NOTE: if you want to use the same monster just copy the numbers from (1)}
{2}
monstercolor2 = 3225412;
hue2 = 0.16;
sat2 = 0.44;
tol2 = 14;
{other}
{NEW 1.6}
ADDWAIT = 100; {increase with 100 until you get it fast + stable, decrease if you want it to attack faster {1000 = 1 sec}
{-------}
TRAININGMODE = 2;
ANTIBANTRAININGMODE = skill_range; {Combat skill you are training: skill_defence, skill_attack, skill_strength, skill_range, skill_magic}
WORLD = 1;
RIGHTCLICKONLY = false;
VERSION = '8';
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := USERNAME;
Pass := PASSWORD;
nick := NICKNAME;
Active := True;
end;
end;
procedure foodsetup;
begin
MonsterColor := [MonsterColor1, MonsterColor2];
Hue := [Hue1, Hue2];
Sat := [Sat1, Sat2];
Tol := [Tol1, Tol2];
case FoodName of
'lobster':
begin
FoodDTM := DTMFromString('m6wAAAHic42ZgYHBhYmDwgmJPIHYEYhsgNodiOyB2BWIfIA5gZGCIAeIoIPYD4lAoDoPyfYDYC4idgHhHshjQdEaisAaQJBYTZyIEIwEA/ycJgA==');
end;
'salmon':
begin
FoodDTM := DTMFromString('mggAAAHicY2NgYOCGYhDgA2IJIBYGYi4gFgJifiBmhMqDxA44SkBFUDErAyZgxaoSYR4DAwCTLQG6');
end;
'trout':
begin
FoodDTM := DTMFromString('mggAAAHicY2NgYOAGYmEglgBiPgYIAIlxQTEIMAIxPxALAXF5UhxUBBWzAklWBkyAqRKCIQAAnDwB2A==');
end;
'shark':
begin
FOODDTM := DTMFromString('mlwAAAHicY2dgYOACYkYgZgViESCWYoAALiiWgfKZoXK8QCwMxDnBtlCdmJidATfArgOCoQAAsEwBww==');
end;
end;
end;
procedure SetupUpdater;
var
NewFile: integer;
OnlineVersion, NewScript, NewFileName: string;
begin
writeln('Checking for script updates...');
OnlineVersion := GetPage('http://pastebin.com/raw.php?i=dfiXPdg4');
if (trim(OnlineVersion) > Version) then
begin
writeLn('Script update available!');
writeLn('Updating script to v' + OnlineVersion);
NewScript := GetPage('http://pastebin.com/raw.php?i=8unVMMBc');
NewFileName := 'C:\Simba\Scripts\' + 'HoodzFighter.simba';
NewFile := Rewritefile(NewFileName, true);
try
WriteFileString(NewFile, NewScript);
except
begin
writeLn('Fatal error writing to ' + NewFileName + '!!');
terminatescript;
end;
end;
CloseFile(NewFile);
writeLn('New script downloaded to ' + NewFileName + '. Please restart Simba.');
TerminateScript;
end
else
writeLn('You have the latest version of the script!');
end;
procedure TheStatus;
begin
FindNonInventoryRandoms;
ClearDebug;
GainedXpSkill := Round(R_GetSkillExp(ANTIBANTRAININGMODE) - StartXpSkill);
GainedXpHp := Round(R_GetSkillExp(Skill_Hitpoints) - StartXpHp);
GainedXpHourSkill := Round((GainedXpSkill) / (GetTimeRunning / 3600000.0));
GainedXpHourHp := Round((GainedXpHp) / (GetTimeRunning / 3600000.0));
Writeln('cb xp: ' + IntToStr(GainedXpSkill));
Writeln('cb xp/hour: ' + IntToStr(GainedXpHourSkill));
Writeln('hp xp: ' + IntToStr(GainedXpHp));
Writeln('hp xp/hour: ' + IntToStr(GainedXpHourHp));
Writeln('time running: ' + MsToTime(GetTimeRunning, 3));
Writeln('Hp random eat: ' + IntToStr(HP));
Writeln('Hp: ' + IntToStr(R_GetSkillLevel(Skill_Hitpoints)));
Writeln('your level = ' + IntToStr(R_getMaxSkillLevel(antibantrainingmode)));
end;
procedure AntiBan;
begin
case Random(1000) of
0..1:
begin
Al_HoverSkill(ANTIBANTRAININGMODE, False);
Sleep(800 + Random(500));
end;
2..3:
begin
Al_HoverSkill(Skill_Hitpoints, False);
Sleep(800 + Random(500));
end;
4..10:
begin
MakeCompass(RandomRange(0, 360));
Sleep(800 + Random(500));
end;
11..26:
begin
AL_HumanRandomMouse;
Sleep(800 + Random(500));
end;
18:
begin
AdjustMouseSpeed(2, 10, 20);
Sleep(800 + Random(500));
end;
19:
begin
RandomRClick;
Sleep(800 + Random(500));
end;
20:
begin
HoverMovingObject;
Sleep(800 + Random(500));
end;
21:
begin
MMouseOffClient('top');
Sleep(800 + Random(500));
end;
22:
begin
MMouseOffClient('left');
Sleep(800 + Random(500));
end;
23:
begin
MMouseOffClient('right');
Sleep(800 + Random(500));
end;
24:
begin
MMouseOffClient('bottom');
Sleep(800 + Random(500));
end;
25..26:
begin
if IsRunOn(False) then
begin
SetRun(True);
end
end;
29..31:
begin
RandomTab(False);
Sleep(1000 + Random(500));
AL_GameTab(Tab_Inv);
end;
end;
end;
procedure Attackmonster;
var
TPAA: T2DPointArray;
TPA: TPointArray;
CTS, I, Retry, x, y, t, R1, R2: Integer;
MP: Tpoint;
Box, pbox2, pbox: Tbox;
begin
if (not LoggedIn) then
begin
Exit;
end
else
begin
pbox2 := IntToBox(188, 23, 379, 64);
PBox := IntToBox(223, 127, 295, 196);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
MarkTime(T);
for R1 := 0 to high(Hue) do
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Hue[R1], Sat[R1]);
FindColorsSpiralTolerance(mscx, mscy, TPA, Monstercolor[R1], msx1, msy1, msx2, msy2, tol[R1]);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 20, 20);
SortATPASize(TPAA, True);
for I := 0 to High(TPAA) do
if GetArraylength(TPAA[R2]) > 50 then
begin
Inc(Retry);
MiddleTPAEx(TPAA[R2], x, y);
MP := MiddleTPA(TPAA[R2]);
Box := IntToBox(MP.x - 20, MP.y - 17, MP.x + 20, MP.y + 17);
if (not (FindColor(X, Y, 255, mp.x - 20, mp.y - 25, mp.x + 20, mp.y + 15) or FindColor(X, Y, 65280, mp.x - 20, mp.y - 25, mp.x + 20, mp.y + 25))) then
begin
Al_MissMouse(Point(x, y), 5, 5);
Sleep(10 + Random(10));
if (RIGHTCLICKONLY) then
begin
Wait(200 + random(100));
AL_ChooseOptionMulti(['tta']);
Flag;
Wait(2500 + Random(500));
Exit;
end
else
begin
case Random(6) of
0..4:
begin
Al_fastclick(Mouse_Left);
Flag;
Exit;
end;
5:
begin
AL_fastclick(Mouse_Right);
Wait(200 + Random(100));
AL_ChooseOptionMulti(['tta']);
Flag;
Exit;
end;
end;
end;
end
else
begin
case Random(8) of
1:
begin
Sleep(1000 + Random(230));
MakeCompass(RandomRange(0, 360));
end;
end;
Sleep(1000 + Random(230));
FindNonInventoryRandoms();
AttackMonster;
Exit;
end;
end
else
begin
MakeCompass(RandomRange(0, 360));
Sleep(1000 + Random(230));
FindNonInventoryRandoms();
AttackMonster;
Exit;
end;
end;
end;
end;
procedure GenerateHP;
var
HP1, HP2: Integer;
begin
HP1 := Round(R_GetSkillLevel(Skill_Hitpoints) / 2) + Round(R_GetSkillLevel(Skill_Hitpoints) / 6);
HP2 := Round(R_GetSkillLevel(Skill_Hitpoints) / 2) + Round(R_GetSkillLevel(Skill_Hitpoints) / 4);
HP := RandomRange(HP1, HP2);
end;
procedure Eating_Food;
begin
if (R_GetSkillLevel(Skill_Hitpoints) > HP) then
begin
Wait(700 + Random(200));
FindNonInventoryRandoms;
Antiban;
end
else
begin
AL_gametab(Tab_Inv);
Wait(120 + Random(200));
if (Gametab(Tab_Inv)) then
begin
if (FindDtm(FoodDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
Al_MissMouse(Point(x, y), 5, 5);
Sleep(150 + Random(100));
AL_FastClick(Mouse_Left);
FindNormalRandoms();
Sleep(1000 + Random(1000));
AL_GameTab(Tab_Inv);
GenerateHP;
FindNonInventoryRandoms;
end
else
begin
Sleep(30000);
LogOut;
end;
end;
end;
end;
function IsInCombat: Boolean;
begin
if (R_WaitForAnimation(950 + ADDWAIT)) then
begin
FindNonInventoryRandoms;
result := true
end;
end;
procedure Skill_FailSafe;
begin
if FindColor(X, Y, 8042720, 485, 11, 515, 32) then
begin
MMouse(x, y, 3, 3);
Clickmouse2(Mouse_Left);
Wait(400 + Random(300))
end
else
begin
FindNonInventoryRandoms;
AttackMonster;
end;
end;
procedure ClearTheDTM;
begin
FreeDTM(FoodDTM);
AddOnTerminate('clearthedtm');
end;
begin
DeclarePlayers;
FoodSetup;
Smart_World := WORLD;
SetupReflection;
SetupUpdater;
SetupSRL();
Disguise('HoodzFighter Reflection v1,3');
SRL_CombatRandoms := False;
ActivateClient;
ClearDebug;
Writeln('HoodzFighter Reflection version 1,3');
GenerateHP;
repeat
if (not LoggedIn) then
begin
if (StartCount = 0) then
begin
Inc(StartCount);
LogInPlayer;
SetAngle(0);
Setrun(true);
Setfightmode(trainingmode);
AL_Gametab(tab_stats);
StartXpSkill := Round(R_getskillexp(ANTIBANTRAININGMODE));
StartXpHp := Round(R_GetSkillExp(Skill_Hitpoints));
Writeln('start xp cb = ' + IntToStr(StartXpSkill));
Writeln('start xp hp = ' + IntToStr(StartXpHp));
GenerateHp;
end
else
begin
LogInPlayer;
SetAngle(0);
SetRun(True);
Setfightmode(TrainingMode);
AL_GameTab(Tab_Stats);
end;
end;
if (LoggedIn) then
begin
if StartCount = 0 then
begin
GenerateHP;
Inc(StartCount);
ClearDebug;
StartXpSkill := Round(R_getSkillExp(ANTIBANTRAININGMODE));
StartXpHp := Round(R_GetSkillExp(Skill_Hitpoints));
writeln('start xp cb = ' + IntToStr(StartXpSkill));
writeln('start xp hp = ' + IntToStr(StartXpHp));
if (IsInCombat) then
begin
Eating_Food;
end
else
begin
Skill_FailSafe;
end;
end
else
begin
if (IsIncombat) then
begin
Eating_Food;
TheStatus;
end
else
begin
Skill_FailSafe;
FindNonInventoryRandoms();
end;
end;
end;
until (false);
end.
That was it thanks
just a coding question (and I haven't looked at your code lines 1:1 to see the exact differences, if any), but why do you have attackmonster1-6 rewritten 6 times? you could reduce your code by at least 500 lines just by some variable swaps; that's fully 1/3 of your code.
oh... haha yeah I haven't been here in like a year. just thought i'd check out the popular osrs scripts, and obviously yours is one of them. Is the reflection one newer?
Can you recommend me a monster which is different color like ground, barbarians are unuseable, but giant rets at edgeville dungeon are good (grey on brown) . Im looking for higher cb monter than rats, 10-13 lvl. can you help me please? thank you for your replay :)
I do have it working quite nicely, thank you! Just another quick question.. why is it so "clicky"? Like.. It doesn't detect if you're in combat, and this looks especially suspicious if you're in single-way. Also, there's no up-text checking in this version? I've spent a bit of time clicking on non-killable NPCs lol.
Thanks for giving me a alternate script to use! It works good, but one suggestion is to change how it detects the HP and to eat. It likes to risk it and eat a 6 hp and then ends up dying.
Not working :(
I have this working, I've made a couple changes and added prayer support to version hoodz posted above although its a little buggy. Not sure if people were still having problems but here it is:
PS: its set to kill black demons using prayer atm
Simba Code:program HoodFighter;
{$DEFINE SMART8}
{$I SRL-OSR/SRL.Simba}
{$I SRL-OSR/SRL/misc/al_functions.simba}
{$I SRL-OSR/SRL/Reflection/Reflection.simba}
var
x, y, hp, fooddtm, startcount, startxpskill, startxphp, gainedxpskill, gainedxphp, gainedxphourskill, gainedxphourhp: integer;
Hue, Sat: TExtendedArray;
MonsterColor, tol: TIntegerarray;
DrinkPray, IP, DrinkPray1, DrinkPray2: integer;
Pray1, Pray2, Pray3, Pray4: integer;
Pray: TIntegerarray;
const
{player info}
NICKNAME = '';
USERNAME = '';
PASSWORD = '';
{hp/food info}
{salmon, shark, lobster, trout}
foodname = 'lobster';
{monster/npc info} {use ACA} {current setup: yaks}
{1}
monstercolor1 = 2105380;
hue1 = 0.00;
sat1 = 0.53;
tol1 = 7;
{potion info} {note, you must manually turn on prayer}
UsePrayer = true; {set to true if you want to use prayer}
{other}
ADDWAIT = 700; {increase with 100 until you get it fast + stable, decrease if you want it to attack faster {1000 = 1 sec}
TRAININGMODE = 1;
ANTIBANTRAININGMODE = skill_slayer; {Combat skill you are training: skill_defence, skill_attack, skill_strength, skill_range, skill_magic}
WORLD = 30;
RIGHTCLICKONLY = true; {true if you want to right click the monster}
VERSION = '8';
function IsInCombat: Boolean;
begin
if (R_WaitForAnimation(950 + ADDWAIT)) then
begin
FindNonInventoryRandoms;
result := true
end;
end;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := USERNAME;
Pass := PASSWORD;
nick := NICKNAME;
Active := True;
end;
end;
procedure foodsetup;
begin
MonsterColor := [MonsterColor1];
Hue := [Hue1];
Sat := [Sat1];
Tol := [Tol1];
case FoodName of
'lobster':
begin
FoodDTM := DTMFromString('m6wAAAHic42ZgYHBhYmDwgmJPIHYEYhsgNodiOyB2BWIfIA5gZGCIAeIoIPYD4lAoDoPyfYDYC4idgHhHshjQdEaisAaQJBYTZyIEIwEA/ycJgA==');
end;
'salmon':
begin
FoodDTM := DTMFromString('mggAAAHicY2NgYOCGYhDgA2IJIBYGYi4gFgJifiBmhMqDxA44SkBFUDErAyZgxaoSYR4DAwCTLQG6');
end;
'trout':
begin
FoodDTM := DTMFromString('mggAAAHicY2NgYOAGYmEglgBiPgYIAIlxQTEIMAIxPxALAXF5UhxUBBWzAklWBkyAqRKCIQAAnDwB2A==');
end;
'shark':
begin
FOODDTM := DTMFromString('mlwAAAHicY2dgYOACYkYgZgViESCWYoAALiiWgfKZoXK8QCwMxDnBtlCdmJidATfArgOCoQAAsEwBww==');
end;
end;
end;
procedure OnEnd;
begin
FreeDTM(Pray1);
FreeDTM(Pray2);
FreeDTM(Pray3);
FreeDTM(Pray4);
end;
procedure ArraySetup;
begin
Pray1 := DTMFromString('mWAAAAHicY2FgYLjLxMDwFIivAfF9INZgZGBQg2IDEN7eBVTFCMdsDKiAEQ2DAACFtgWq'); {1 dose}
Pray2 := DTMFromString('mWAAAAHicY2FgYGBjYmDgAmJ+IGYAYg1GBgYTINaCYvnKGKAEIxxzMaACRjQMAgBrxQHl');
Pray3 := DTMFromString('mWAAAAHicY2FgYGhlYmBoB+JGIO4DYg1GBgYzRgitB8QWl+YDVTHCMTsDKmBEwyAAACq5BJc=');
Pray4 := DTMFromString('mWAAAAHicY2FgYIhmYmCIAuIUIA4FYjVGBgYzINYFYi0gTr26BqiKEY65GFABIxoGAQACtAQp'); {4 dose}
Pray := [Pray1, Pray2, Pray3, Pray4];
AddOnTerminate('OnEnd');
end;
procedure RandomPot;
begin
DrinkPray1 := R_GetMaxSkillLevel(Skill_Prayer) / 3;
DrinkPray2 := R_GetMaxSkillLevel(Skill_Prayer) / 2;
DrinkPray := Randomrange(DrinkPray1, DrinkPray2);
Writeln('Generated drink pot at: ' + IntToStr(DrinkPray));
end;
procedure SetupUpdater;
var
NewFile: integer;
OnlineVersion, NewScript, NewFileName: string;
begin
writeln('Checking for script updates...');
OnlineVersion := GetPage('http://pastebin.com/raw.php?i=dfiXPdg4');
if (trim(OnlineVersion) < Version) then
begin
writeLn('Script update available!');
writeLn('Updating script to v' + OnlineVersion);
NewScript := GetPage('http://pastebin.com/raw.php?i=8unVMMBc');
NewFileName := 'C:\Simba\Scripts\' + 'HoodzFighter.simba';
NewFile := Rewritefile(NewFileName, true);
try
WriteFileString(NewFile, NewScript);
except
begin
writeLn('Fatal error writing to ' + NewFileName + '!!');
terminatescript;
end;
end;
CloseFile(NewFile);
writeLn('New script downloaded to ' + NewFileName + '. Please restart Simba.');
TerminateScript;
end
else
writeLn('You have the latest version of the script!');
end;
procedure PrayerProcedure;
begin
if (R_GetSkillLevel(Skill_Prayer) < DrinkPray) then
begin
AL_gametab(Tab_Inv);
for IP := 0 to High(Pray) do
begin
if (FindDTM(Pray[IP], x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
Al_MissMouse(point(x, y), randomrange(-5, 5), randomrange(-5, 5));
Sleep(150 + random(50));
Al_FastClick(Mouse_Left);
RandomPot;
Exit;
end
else
begin
Writeln('out of pray pots');
end;
end;
end
end;
procedure TheStatus;
begin
FindNonInventoryRandoms;
ClearDebug;
GainedXpSkill := Round(R_GetSkillExp(ANTIBANTRAININGMODE) - StartXpSkill);
GainedXpHp := Round(R_GetSkillExp(Skill_Hitpoints) - StartXpHp);
GainedXpHourSkill := Round((GainedXpSkill) / (GetTimeRunning / 3600000.0));
GainedXpHourHp := Round((GainedXpHp) / (GetTimeRunning / 3600000.0));
Writeln('time running: ' + MsToTime(GetTimeRunning, 3));
Writeln('cb xp: ' + IntToStr(GainedXpSkill));
Writeln('cb xp/hour: ' + IntToStr(GainedXpHourSkill));
Writeln('hp xp: ' + IntToStr(GainedXpHp));
Writeln('hp xp/hour: ' + IntToStr(GainedXpHourHp));
Writeln('Hp random eat: ' + IntToStr(HP));
if (UsePrayer) then
begin
Writeln('Prayer random pot: ' + IntToStr(DrinkPray));
end;
Writeln('level = ' + IntToStr(R_getMaxSkillLevel(antibantrainingmode)));
end;
procedure AntiBan;
begin
case Random(1000) of
0..1:
begin
Al_HoverSkill(ANTIBANTRAININGMODE, False);
Sleep(800 + Random(500));
end;
2..3:
begin
Al_HoverSkill(Skill_Hitpoints, False);
Sleep(800 + Random(500));
end;
4..10:
begin
MakeCompass(RandomRange(0, 360));
Sleep(800 + Random(500));
end;
11..26:
begin
AL_HumanRandomMouse;
Sleep(800 + Random(500));
end;
18:
begin
AdjustMouseSpeed(2, 10, 20);
Sleep(800 + Random(500));
end;
19:
begin
RandomRClick;
Sleep(800 + Random(500));
end;
20:
begin
HoverMovingObject;
Sleep(800 + Random(500));
end;
21:
begin
MMouseOffClient('top');
Sleep(800 + Random(500));
end;
22:
begin
MMouseOffClient('left');
Sleep(800 + Random(500));
end;
23:
begin
MMouseOffClient('right');
Sleep(800 + Random(500));
end;
24:
begin
MMouseOffClient('bottom');
Sleep(800 + Random(500));
end;
25..26:
begin
if IsRunOn(False) then
begin
SetRun(True);
end
end;
29..31:
begin
RandomTab(False);
Sleep(1000 + Random(500));
AL_GameTab(Tab_Inv);
end;
end;
end;
procedure Attackmonster;
var
TPAA: T2DPointArray;
TPA: TPointArray;
CTS, I, Retry, x, y, t, R1, R2: Integer;
MP: Tpoint;
Box, pbox2, pbox: Tbox;
begin
if (not LoggedIn) then
begin
Exit;
end
else
begin
pbox2 := IntToBox(188, 23, 379, 64);
PBox := IntToBox(223, 127, 295, 196);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
MarkTime(T);
for R1 := 0 to high(Hue) do
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Hue[R1], Sat[R1]);
FindColorsSpiralTolerance(mscx, mscy, TPA, Monstercolor[R1], msx1, msy1, msx2, msy2, tol[R1]);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 20, 20);
SortATPASize(TPAA, True);
for I := 0 to High(TPAA) do
if GetArraylength(TPAA[R2]) > 50 then
begin
Inc(Retry);
MiddleTPAEx(TPAA[R2], x, y);
MP := MiddleTPA(TPAA[R2]);
Box := IntToBox(MP.x - 20, MP.y - 17, MP.x + 20, MP.y + 17);
if (not (FindColor(X, Y, 255, mp.x - 20, mp.y - 25, mp.x + 20, mp.y + 15) or FindColor(X, Y, 65280, mp.x - 20, mp.y - 25, mp.x + 20, mp.y + 25))) then
begin
Al_MissMouse(Point(x, y), 5, 5);
Sleep(10 + Random(10));
if (RIGHTCLICKONLY) then
begin
AL_fastclick(Mouse_Right);
Wait(200 + Random(100));
AL_ChooseOptionMulti(['tta']);
Flag;
Exit;
end
else
begin
case Random(6) of
0..4:
begin
Al_fastclick(Mouse_Left);
Flag;
Exit;
end;
5:
begin
AL_fastclick(Mouse_Right);
Wait(200 + Random(100));
AL_ChooseOptionMulti(['tta']);
Flag;
Exit;
end;
end;
end;
end
else
begin
case Random(8) of
1:
begin
Sleep(1000 + Random(230));
MakeCompass(RandomRange(0, 360));
end;
end;
Sleep(1000 + Random(230));
FindNonInventoryRandoms();
AttackMonster;
Exit;
end;
end
else
begin
MakeCompass(RandomRange(0, 360));
Sleep(1000 + Random(230));
FindNonInventoryRandoms();
AttackMonster;
Exit;
end;
end;
end;
end;
procedure GenerateHP;
var
HP1, HP2: Integer;
begin
HP1 := Round(R_GetSkillLevel(Skill_Hitpoints) / 2) + Round(R_GetSkillLevel(Skill_Hitpoints) / 6);
HP2 := Round(R_GetSkillLevel(Skill_Hitpoints) / 2) + Round(R_GetSkillLevel(Skill_Hitpoints) / 4);
HP := RandomRange(HP1, HP2);
end;
procedure Eating_Food;
begin
if (R_GetSkillLevel(Skill_Hitpoints) > HP) then
begin
Wait(700 + Random(200));
FindNonInventoryRandoms;
Antiban;
end
else
begin
AL_gametab(Tab_Inv);
Wait(120 + Random(200));
if (Gametab(Tab_Inv)) then
begin
if (FindDtm(FoodDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
Al_MissMouse(Point(x, y), 5, 5);
Sleep(150 + Random(100));
AL_FastClick(Mouse_Left);
FindNormalRandoms();
Sleep(1000 + Random(1000));
AL_GameTab(Tab_Inv);
GenerateHP;
FindNonInventoryRandoms;
end
else
begin
Sleep(30000);
LogOut;
end;
end;
end;
end;
procedure Skill_FailSafe;
begin
if FindColor(X, Y, 8042720, 485, 11, 515, 32) then
begin
MMouse(x, y, 3, 3);
Clickmouse2(Mouse_Left);
Wait(400 + Random(300))
end
else
begin
FindNonInventoryRandoms;
AttackMonster;
end;
end;
procedure ClearTheDTM;
begin
FreeDTM(FoodDTM);
AddOnTerminate('clearthedtm');
end;
begin
DeclarePlayers;
FoodSetup;
Smart_World := WORLD;
SetupSRL();
SetupReflection;
SetupUpdater;
Disguise('HoodzFighter Reflection v1,3');
SRL_CombatRandoms := False;
ActivateClient;
ClearDebug;
Writeln('HoodzFighter Reflection version 1,3');
GenerateHP;
repeat
if (not LoggedIn) then
begin
if (StartCount = 0) then
begin
Inc(StartCount);
LogInPlayer;
SetAngle(0);
Setrun(true);
Setfightmode(trainingmode);
AL_Gametab(tab_stats);
StartXpSkill := Round(R_getskillexp(ANTIBANTRAININGMODE));
StartXpHp := Round(R_GetSkillExp(Skill_Hitpoints));
Writeln('start xp cb = ' + IntToStr(StartXpSkill));
Writeln('start xp hp = ' + IntToStr(StartXpHp));
GenerateHp;
end
else
begin
LogInPlayer;
SetAngle(0);
SetRun(True);
Setfightmode(TrainingMode);
AL_GameTab(Tab_Stats);
end;
end;
if (LoggedIn) then
begin
if StartCount = 0 then
begin
GenerateHP;
Inc(StartCount);
ClearDebug;
StartXpSkill := Round(R_getSkillExp(ANTIBANTRAININGMODE));
StartXpHp := Round(R_GetSkillExp(Skill_Hitpoints));
writeln('start xp cb = ' + IntToStr(StartXpSkill));
writeln('start xp hp = ' + IntToStr(StartXpHp));
ArraySetup;
RandomPot;
if (IsInCombat) then
begin
Eating_Food;
end
else
begin
Skill_FailSafe;
end;
end
else
begin
if (UsePrayer) then
PrayerProcedure;
if (IsIncombat) then
begin
Eating_Food;
TheStatus;
end
else
begin
Skill_FailSafe;
FindNonInventoryRandoms();
end;
end;
end;
until (false);
end.
almost done with the reflection version. looting/fighting 90% done, pots 100%. also need to add a failsafe to isInCombat function and i need to add some random finders.
heres a loot items thing i made a couple weeks ago. LootListIDs is the array of ids we are looking for and LootListName is the corresponding name to that id. idk if this helps or not
Simba Code:function LootItems: Boolean;
var
i, j, k: integer;
LootLocation: Tpoint;
AvailableLoots: TGroundItemArray;
begin
Result := False;
AvailableLoots := R_GetGroundItemsDistance(10);
for i := 0 to High(AvailableLoots) do
begin
for j := 0 to High(LootListIDs) do
begin
if (AvailableLoots[i].ID = LootListIDs[j]) then
begin
for k := 0 to High(LootListNames) do
begin
LootLocation := R_TileToMS(AvailableLoots[i].Tile);
MMouse(LootLocation.x, LootLocation.y, 2, 2);
HumanWait;
if (R_IsUpText(LootListNames[k])) then
begin
ClickMouse2(mouse_left);
Result := True;
end else
begin
ClickMouse2(mouse_right);
R_WaitChooseOption('Take ' + LootListNames[k], 350);
R_ChooseOption('Take ' + LootListNames[k]);
Result := True;
end;
end;
end else
Exit;
end;
end;
end;
Error] C:\Simba\Includes\SRL-OSR\SRL\misc\SmartParams.Simba(76:20): Unknown identifier 'SmartGetAvailablePID' at line 76
Compiling failed.
Seem to get this every time any idea why or how to fix? Always seems to be due to smart releted graphics such as the )SMART_drawtext command and what not
Hey Hoodz, I would LOVE to see guthan support on this script You think that is possible?
I really like this script thank you so much for it.
It didn´t worked, if i try to start there comes:
Exception in Script: Duplicate declaration "status" at line 15, column 16
mines a little something like this if it helps
Simba Code:function AttackTheMonster: Boolean;
var
TheMonster: TNPC;
MonsterLocation : Tpoint;
CurrentCompassAngle: Extended;
begin
Result := False;
CurrentCompassAngle := rs_GetCompassAngleDegrees;
if R_FindNpc(AttackMonster, TheMonster) then
begin
if ((TheMonster.InCombat) or (R_InFight) or (R_IsAnimating)) then
Exit;
//if (sqrt(sqr(MonsterLocation.x + StartingTile.x) + sqr(MonsterLocation.y + StartingTile.y)) > SearchRadius) then
// Exit;
MonsterLocation := TheMonster.Tile;
MonsterLocation := R_TileToMs(TileLocation);
if (MonsterLocation := (-1,-1) then
begin
TileLocation := R_TiletoMM(MonsterLocation);
R_BlindWalk(TileLocation);
FFlag(2);
wait(50 + random (100, 300));
Exit;
end;
//SMART_DrawDotsEx(True, [MonsterLocation], clGreen);
MMouse(MonsterLocation.x, MonsterLocation.y, 0, 0);
if (R_WaitUpText(['Attack', AttackMonster], 350)) then
begin
if(R_IsUpTextMulti(['Attack', AttackMonster])) then
begin
case random(10) of
0..5: ClickMouse2(mouse_left);
6..9: begin
ClickMouse2(mouse_right);
HumanWait;
if R_OptionExists('Attack') then
R_ChooseOption('Attack') else
begin
R_WaitChooseOption('Cancel',750);
wait(500 + random(250));
Exit;
end;
end;
end;
FFlag(0);
wait(1500 + random(250,750);
end;
end; (*else
begin
MakeCompass(CurrentCompassAngle + randomrange(45,70));
Exit;
end;*)
if (R_InFight) then
begin
Result := True;
while (TheMonster.HitPoints > 0) do
begin
EatFood;
end;
end;
Exit;
end;
end;
edit: AttackMonster is the Global Constant the user defines and the CurrentCompassAngle is used to rotate the camera incase theres a tree or something between the player and the monster when it moves the mouse
edit2: if your having troubles with it trying to click another monster while it just clicked one monster its cause the R_InFight doesnt indicate ur in a fight until you have a splash on the monster i believe, i think elfyyy said the R_InFight was updated in a recent update but i havent checked if this issue was fixed
i am pretty sure it is me , but i am killing chickens right now and i have the feeling it takes way to long till he attacks t a new one...so sometimes it takes up to 30 secs till he attacks a new chicken
what version do you mean?
your script smart or what?
i use HoodzFighter_osr-srl17
EDIT: i have 2.5 lol :D
nice script, well done
Any particular reason mine would be saying "searching monsters" then "no monsters found - moving camera" continously even though there are monsters all around me?
Edit: My mistake, forgot I had to change monster colours.
Edit 2: Got it now, working great. Is there any up to date Anti-randoms code that does them?
Everytime I try to use the bot it never fights the monster but only says "searching for monsters-moving camera angle" Any help?
Warning! You passed a wrong ys to a finder function: -4. That is below 0, thus out of bounds. Setting the value to 0 for now.
any idea why?
uploaded the newest color version. should be way better!
reflection version coming soon (bank support) same as thread cleanup
Exception in Script: Unknown declaration "HowManyPlayers" at line 40, column 3
How to fix?