Antiban Tasks¶
Collection of antiban tasks to be used with TAntiban.
Built in Antiban Tasks¶
procedure TAntiban.SmallRandomMouse;
procedure TAntiban.RandomMouse;
procedure TAntiban.RandomRotate;
procedure TAntiban.HoverSkill(Skill: ERSSkill; HoverTime: Int32; ReturnToCurrentTab: Boolean);
procedure TAntiban.HoverSkills;
procedure TAntiban.LoseFocus;
procedure TAntiban.LoseFocus(Idle: Int32); overload;
procedure TAntiban.RandomTab;
procedure TAntiban.RandomRightClick;
procedure TAntiban.AdjustZoom;
procedure TAntiban.SwivelNear(start: TBox; radius: Int32; Iterations: Int32=1); overload;
procedure TAntiban.Swivel;
procedure TAntiban.HoverMSTile(dotType: ERSMinimapDot; rightClick: Boolean = False);
procedure TAntiban.HoverRandomNPC;
procedure TAntiban.HoverRandomPlayer;
procedure TAntiban.HoverRandomGrounditem;
SRL built in Antiban Tasks that can be added with TAntiban.AddTask.
Example:
Antiban.AddTask(15 * ONE_MINUTE, @Antiban.HoverSkills);
TODO: procedure TAntiban.MoveItems(items: TRSItemArray); var currentSlots, newSlots, tmp: TIntegerArray; i: Int32; begin WriteLn GetDebugLn(‘Antiban’, ‘Moving items’);
if Inventory.GetSelected() > -1 then begin Inventory.Select(-1); Biometrics.Sleep(50, 250, ERandomDir.LEFT); end;
if not Inventory.Items.FindAll(items, currentSlots) then Exit;
newSlots := Inventory.RandomPattern();
SetLength(newSlots, Length(currentSlots)); WriteLn newSlots; tmp := currentSlots.Intersection(newSlots); WriteLn tmp; currentSlots := currentSlots.Difference(tmp); currentSlots := currentSlots.Sorted(); WriteLn currentSlots; newSlots := newSlots.Difference(tmp);
WriteLn newSlots; for i := 0 to High(currentSlots) do begin Inventory.Drag(currentSlots[i], newSlots[i]); Biometrics.Sleep(50, 250, ERandomDir.LEFT); end; end;
procedure TAntiban.CheckCharges(); const ITEM_LIST: TRSItemArray = [ ‘Infernal axe’, ‘Crystal axe’, ‘Infernal harpoon’, ‘Crystal harpoon’, ‘Infernal pickaxe’, ‘Crystal pickaxe’, ‘Bryophyta’’s staff’, ‘Ring of endurance’, ‘Ring of suffering (ri)’, ‘Ring of suffering (r)’, ‘Amulet of blood fury’, ‘Dodgy necklace’, ‘Tome of fire’, ‘Bonecrusher necklace’, ‘Amulet of chemistry’, ‘Celestial ring’, ‘Celestial signet’, ‘Sanguinesti staff’ ]; var equippedArray: TRSItemArray; item: TRSItem; begin if not Equipment.Open() then Exit;
for item in ITEM_LIST do if Equipment.ContainsItem(item) then equippedArray += item;
if equippedArray = [] then Exit;
item := equippedArray.RandomValue();
WriteLn GetDebugLn(‘Antiban’, ‘Checking ‘ + ToStr(item) + ‘ charges’);
Equipment.ClickItem(item, ‘Check’); end;
procedure TAntiban.CheckSlayerHelm(); const ITEM_LIST: TRSItemArray = [ ‘Slayer helmet’, ‘Black slayer helmet’, ‘Green slayer helmet’, ‘Red slayer helmet’, ‘Purple slayer helmet’, ‘Turquoise slayer helmet’, ‘Hydra slayer helmet’, ‘Twisted slayer helmet’, ‘Tztok slayer helmet’, ‘Vampyric slayer helmet’, ‘Tzkal slayer helmet’, ‘Slayer helmet (i)’, ‘Black slayer helmet (i)’, ‘Green slayer helmet (i)’, ‘Red slayer helmet (i)’, ‘Purple slayer helmet (i)’, ‘Turquoise slayer helmet (i)’, ‘Hydra slayer helmet (i)’, ‘Twisted slayer helmet (i)’, ‘Tztok slayer helmet (i)’, ‘Vampyric slayer helmet (i)’, ‘Tzkal slayer helmet (i)’ ]; var i: Int32; begin if not Equipment.Open() then Exit;
for i := 0 to High(ITEM_LIST) do begin if Equipment.ContainsItem(ITEM_LIST[i]) then Break; if i = High(ITEM_LIST) then Exit; end;
WriteLn GetDebugLn(‘Antiban’, ‘Checking slayer task progress in’ + ToStr(ITEM_LIST[i]) + ‘.’);
Equipment.ClickItem(ITEM_LIST[i], ‘Check’); end;
procedure TAntiban.CheckSlayerBracelet(); //TODO: Add equipping if it expired in the equipment var item: TRSItem; inInventory: Boolean; begin item := ‘null’;
if Inventory.Open() then begin if Inventory.ContainsItem(‘Bracelet of slaughter’) then item := ‘Bracelet of slaughter’ else if Inventory.ContainsItem(‘Expeditious bracelet’) then item := ‘Expeditious bracelet’;
inInventory := True;
end;
if (item = ‘null’) and Equipment.Open() then begin if Equipment.ContainsItem(‘Bracelet of slaughter’) then item := ‘Bracelet of slaughter’ else if Equipment.ContainsItem(‘Expeditious bracelet’) then item := ‘Expeditious bracelet’;
inInventory := False;
end;
if item = ‘null’ then Exit;
WriteLn GetDebugLn(‘Antiban’, ‘Checking ‘ + ToStr(item) + ‘ state.’);
if inInventory then Inventory.ClickItem(Item, ‘Check’) else Equipment.ClickItem(Item, ‘Check’); end;
procedure TAntiban.RandomAchievementTab(); begin WriteLn GetDebugLn(‘Antiban’, ‘Random Achievement Tab’); Achievements.OpenTab(ERSAchievementTab(Random(0, Ord(High(ERSAchievementTab))))); end;
procedure TAntiban.ToggleAchievementTabs(); var currentTab: ERSAchievementTab; time: Int32; done: Int64; begin currentTab := Achievements.GetCurrentTab(); WriteLn GetDebugLn(‘Antiban’, ‘Toggling Achievement tabs’); Self.RandomAchievementTab();
time := Round(SRL.TruncatedGauss(500BioHash, 7000BioHash)); done := Time() + time;
if Self.BioDice(50) then begin case Achievements.GetCurrentTab() of ERSAchievementTab.QUESTS, ERSAchievementTab.DIARIES: Achievements.RandomScroll(Achievements.GetScrollPosition() < 50); end; end;
repeat System.Wait(50, 150); until Time() > done;
Achievements.OpenTab(currentTab); end;
procedure TAntiban.RandomBankButton(); var RandomButton: ERSBankButton; BankButton: TRSButton; begin if not Bank.IsOpen then Exit;
RandomButton := ERSBankButton(Random(2, 10)); BankButton := Bank.GetButton(RandomButton); WriteLn GetDebugLn(‘Antiban’, ‘Clicking ‘ + ToStr(RandomButton) + ‘ bank button’); BankButton.Enable; end;