Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program ArmouredZombieKiller; //By ~GGzz~
- {$define SMART}
- {$define CrashSmart}
- {$i srl/srl.simba}
- {$i srl/srl/skill/fighting.simba}
- {$i SRL/SRL/misc/paintsmart.simba}
- //{$I srl/srl/misc/debug.simba}
- var
- Food: TStringArray;
- WhichFamiliar, WTP, WTE, WTD, WaitFight_Shield, WaitFight_Damage: Integer;
- Potion, SStatus: String;
- NoSS, Debugs, Paint, Closed, Permanent: boolean;
- SaveMe: Boolean;
- StartExperience: Int64;
- ItemCheckList: TStringArray;
- const
- PickItems = False; //Set to true if you'd like to SEE/TRY picking up Items.. It is in BETA but will do you NO harm.
- //Fill in your username, etc..
- Procedure DeclarePlayers;
- begin
- HowManyPlayers := 1;
- NumberOfPlayers(HowManyPlayers);
- CurrentPlayer := 0;
- with Players[0] do
- begin
- Name := '';
- Pass := '';
- Pin := '';
- WorldInfo := [27, 42, 45, 46, 48, 52, 59, 70, 72, 78, 79, 87, 104, 115, 117];
- BoxRewards := ['XP','xp','lamp'];
- LampSkill := Skill_Slayer;
- Active := True;
- Strings := ['ffigy', 'harm', 'eath rune', 'lood rune', 'oul rune', 'rune', 'essence', 'ak plank', 'eak plank']; //Items to pickUp. DOES NOT WORK PERFECTLY.. Needs work badly!!!
- ItemCheckList := ['bones', 'gp']; //Items to right click to check for the above.. DO NOT TOUCH!
- end;
- end;
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- /// ///
- /// By: ~GGzz~ ///
- /// ///
- /// ALL CODE STARTS HERE!! DO NOT TOUCH IF IN-EXPERIENCED! ///
- /// ///
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- const
- Version = '1.93';
- Colour = CLBlue;
- Shaddow = False;
- Font = 'StatChars';
- VersionChars = 'UpChars';
- type
- Skill = record
- ModAtk: Integer;
- ModStr: Integer;
- ModDef: Integer;
- Atk: Integer;
- Str: Integer;
- Def: Integer;
- end;
- type
- FoodStruct = record
- Item: Integer;
- Uptext: TStringArray;
- end;
- type
- ItemPickup = record
- Color: Integer;
- Tolerance: Integer;
- Speed: TExtendedArray;
- end;
- var
- SK: Skill;
- LProc, FFinder: String;
- UpTextF: TStringArray;
- PLevel, TimeToDrink, RCTS: Integer;
- const
- LadderColour = 536409;
- LTol = 4;
- FFS = True; //FlagFailSafe.
- var
- QP: Boolean; //QuickPrayer..
- Procedure DebugTPA(TPA: TPointArray; BitmapName: string);
- begin
- Smart_DrawDotsEx(True, TPA, CLBlue);
- end;
- Procedure LastRun;
- begin
- writeln('~ Last Run Proc ~');
- writeln('Last Proc: ' + LProc);
- writeln('FFinder: ' + FFinder);
- Writeln('Prayer Level: ' + ToStr(PLevel));
- writeln('Uptext: ' + ToStr(UpTextF));
- SStatus:= 'Not Running';
- end;
- var
- AZK : TForm;
- ZombieKillerLabel : TLabel;
- Panel : TPanel;
- Bevel1 : TBevel;
- Familiars : TLabel;
- DPotions : TLabel;
- UseSS : TLabel;
- WTDPots : TLabel;
- WTRP : TLabel;
- WTEF : TLabel;
- Bevel2 : TBevel;
- Developer : TLabel;
- PSmartLabel : TLabel;
- Label1 : TLabel;
- Label2 : TLabel;
- Familiar : TComboBox;
- Potions : TComboBox;
- WhenToDrink : TEdit;
- SoulSplit : TComboBox;
- WhenToPray : TEdit;
- WhenToEat : TEdit;
- PaintOnSmartX : TComboBox;
- Debug : TComboBox;
- FoodBox : TListBox;
- Save : TButton;
- Start : TButton;
- Timer1 : TTimer;
- SaveDialog1 : TSaveDialog;
- Procedure InitializeVariables;
- begin
- if (Length(Food) = 0) then
- begin
- SetLength(Food, 1);
- Food[0]:= 'none';
- end;
- if (Potion = '') then
- Potion:= 'none';
- if (Closed = False) then
- TerminateScript;
- end;
- Procedure SaveInfo;
- var
- I: Integer;
- begin
- WriteINI('Familiar', 'Key', ToStr(WhichFamiliar) , ScriptPath + 'AZKInfo.INI');
- if (Length(Food) <> 0) then
- For I:= 0 To High(Food) do
- WriteINI('Food', 'Key[' + ToStr(I) + ']', Food[I], ScriptPath + 'AZKInfo.INI')
- else
- WriteINI('Food', 'Key[0]', 'None', ScriptPath + 'AZKInfo.INI');
- WriteINI('WTP', 'Key', ToStr(WTP), ScriptPath + 'AZKInfo.INI');
- WriteINI('WTE', 'Key', ToStr(WTE), ScriptPath + 'AZKInfo.INI');
- WriteINI('WTD', 'Key', ToStr(WTD), ScriptPath + 'AZKInfo.INI');
- WriteINI('Potion', 'Key', ToStr(Potion), ScriptPath + 'AZKInfo.INI');
- WriteINI('NoSS', 'Key', ToStr(NoSS), ScriptPath + 'AZKInfo.INI');
- WriteINI('QP', 'Key', ToStr(QP), ScriptPath + 'AZKInfo.INI');
- if (Debugs = True) then
- WriteINI('Debugs', 'Key', '1', ScriptPath + 'AZKInfo.INI')
- else
- WriteINI('Debugs', 'Key', '0', ScriptPath + 'AZKInfo.INI');
- if (Paint = True) then
- WriteINI('Paint', 'Key', '1', ScriptPath + 'AZKInfo.INI')
- else
- WriteINI('Paint', 'Key', '0', ScriptPath + 'AZKInfo.INI');
- if Permanent then
- WriteINI('Permanent', 'Key', 'True', ScriptPath + 'AZKInfo.INI');
- end;
- Procedure LoadInfo;
- var
- I, J: Integer;
- Temp: String;
- begin
- WhichFamiliar:= StrToIntDef(ReadINI('Familiar', 'Key', ScriptPath + 'AZKInfo.INI'), 0);
- SetLength(Food, 12);
- For I:= 0 To 11 do
- begin
- Food[I]:= ReadINI('Food', 'Key[' + ToStr(I) + ']', ScriptPath + 'AZKInfo.INI');
- end;
- For I:= 0 To High(Food) do
- begin
- if (Food[I] <> '') then
- J:= J + 1;
- end;
- SetLength(Food, J);
- WTP:= StrToIntDef(ReadINI('WTP', 'Key', ScriptPath + 'AZKInfo.INI'), 50);
- WTE:= StrToIntDef(ReadINI('WTE', 'Key', ScriptPath + 'AZKInfo.INI'), 500);
- WTD:= StrToIntDef(ReadINI('WTD', 'Key', ScriptPath + 'AZKInfo.INI'), 0);
- Potion:= ReadINI('Potion', 'Key', ScriptPath + 'AZKInfo.INI');
- NoSS:= StrToBoolDef(ReadINI('NoSS', 'Key', ScriptPath + 'AZKInfo.INI'), True);
- QP:= StrToBoolDef(ReadINI('QP', 'Key', ScriptPath + 'AZKInfo.INI'), True);
- Temp:= ReadINI('Debugs', 'Key', ScriptPath + 'AZKInfo.INI');
- if (Temp = '1') then
- Debugs:= True
- else
- Debugs:= False;
- Temp:= ReadINI('Paint', 'Key', ScriptPath + 'AZKInfo.INI');
- if (Temp = '1') then
- Paint:= True
- else
- Paint:= False;
- Permanent:= StrToBoolDef(ReadINI('Permanent', 'Key', ScriptPath + 'AZKInfo.INI'), False);
- if Permanent then
- Closed:= True;
- end;
- Procedure GetInfo(Sender: TObject);
- var
- I, J, K: Integer;
- Error: Boolean;
- Begin
- Error:= False;
- Case Sender Of
- Familiar:
- WhichFamiliar:= Familiar.ITEMS.IndexOf(Familiar.TEXT);
- Potions:
- Case LowerCase(Potions.TEXT) of
- 'none':
- Potion:= 'none';
- 'superset':
- Potion:= 'ss';
- 'superattack':
- Potion:= 'attack';
- 'superstrength':
- Potion:= 'strength';
- 'superdefence':
- Potion:= 'defence';
- 'overload':
- Potion:= 'ovl';
- 'atkstr pure':
- Potion:= 'atkstr';
- 'atkdef pure':
- Potion:= 'atkdef';
- 'strdef pure':
- Potion:= 'strdef';
- end;
- PaintOnSmartX:
- Paint:= StrToBool(PaintOnSmartX.TEXT);
- Debug:
- Debugs:= StrToBool(Debug.TEXT);
- FoodBox:
- begin
- SetLength(Food, FoodBox.Items.Count);
- K:= 0;
- For I := FoodBox.Items.Count - 1 downto 0 do
- begin
- if FoodBox.Selected[I] then
- For J:= 0 To High(Food) do
- if (Food[J] = '') then
- begin
- if (InStrArrEx(FoodBox.ITEMS.Strings[I], Food, K) = False) then
- Food[J]:= FoodBox.ITEMS.Strings[I]
- else
- DeleteValueInStrArray(Food, K);
- break;
- end;
- end;
- K:= 0;
- For I:= 0 To High(Food) do
- if (Food[I] <> '') then
- K:= K + 1;
- SetLength(Food, K);
- K:= 0;
- For I:= 0 To High(Food) do
- if (Food[I] <> 'None') then
- if InStrArrEx('None', Food, K) then
- DeleteValueInStrArray(Food, K);
- writeln(Food);
- end;
- WhenToPray:
- begin
- if WhenToPray.TEXT = '' then
- exit;
- if ExecRegExpr('^[0-9]*$', WhenToPray.TEXT) then
- WTP:= StrToIntDef(WhenToPray.TEXT, 50)
- else
- begin
- ShowMessage('You must only enter digits!');
- WhenToPray.TEXT:= '50';
- WTP:= 50;
- end;
- end;
- WhenToEat:
- begin
- if WhenToEat.TEXT = '' then
- exit;
- if ExecRegExpr('^[0-9]*$', WhenToEat.TEXT) then
- WTE:= StrToIntDef(WhenToEat.TEXT, 500)
- else
- begin
- ShowMessage('You must only enter digits!');
- WhenToEat.TEXT:= '500';
- WTE:= 500;
- end;
- end;
- WhenToDrink:
- begin
- if WhenToDrink.TEXT = '' then
- exit;
- if ExecRegExpr('^[0-9]*$', WhenToDrink.TEXT) then
- WTD:= StrToIntDef(WhenToDrink.TEXT, 0)
- else
- begin
- ShowMessage('You must only enter digits!');
- WhenToDrink.TEXT:= '0';
- WTD:= 0;
- end;
- if (WTD > 10) then
- ShowMessage('WhenToDrink is 10+.. Pots will be drank when "[SkillLevel < (SkillLevel + WhenToDrink)]"');
- end;
- SoulSplit:
- begin
- QP:= StrToBool(SoulSplit.TEXT);
- NoSS:= Not StrToBool(SoulSplit.TEXT);
- end;
- Start:
- begin
- if WhenToPray.TEXT = '' then
- begin
- ShowMessage('When To Pray is Blank! Please Fix it. If you don''t want to pray, Set the value really high.');
- Error:= True;
- end
- else
- if (ExecRegExpr('^[0-9]*$', WhenToPray.TEXT) = False) then
- begin
- ShowMessage('You Must Enter A Value for When to Pray!');
- Error:= True;
- end;
- if WhenToEat.TEXT = '' then
- begin
- ShowMessage('When To Eat is Blank! Please Fix it. If you don''t want to Eat, Set the value really high.');
- Error:= True;
- end
- else
- if (ExecRegExpr('^[0-9]*$', WhenToEat.TEXT) = False) then
- begin
- ShowMessage('You Must Enter A Value for When to Eat!');
- Error:= True;
- end;
- if WhenToDrink.TEXT = '' then
- begin
- ShowMessage('When To Drink is Blank! Please Fix it. If you don''t want to Drink Potions, Set the value really high.');
- Error:= True;
- end
- else
- if ExecRegExpr('^[0-9]*$', WhenToDrink.TEXT) then
- begin
- WTD:= StrToInt(WhenToDrink.TEXT);
- if (WTD >= 10) then
- begin
- ShowMessage('WhenToDrink must be < 10.. Pots will be drank when "[SkillLevel < (SkillLevel + WhenToDrink)]"');
- Error:= True;
- end;
- end
- else
- if (ExecRegExpr('^[0-9]*$', WhenToDrink.TEXT) = False) then
- begin
- ShowMessage('You Must Enter A Value for When to Drink Potion!');
- Error:= True;
- end;
- if (Error = False) then
- begin
- Closed:= True;
- AZK.CLOSE;
- end;
- end;
- ZombieKillerLabel:
- begin
- Permanent:= True;
- SaveInfo;
- end;
- Save:
- SaveInfo;
- End;
- End;
- procedure InitForm;
- begin
- AZK := TForm.Create(nil);
- with AZK do
- begin
- AZK.Left := 371;
- AZK.Top := 56;
- AZK.BorderStyle := bsToolWindow;
- AZK.Caption := '~AZK~ Armoured Zombies Killer';
- AZK.ClientHeight := 436;
- AZK.ClientWidth := 386;
- AZK.Color := clGray;
- AZK.Font.Color := clTeal;
- AZK.Font.Height := -11;
- AZK.Font.Name := 'Courier';
- AZK.Font.Style := [];
- AZK.Visible := False;
- AZK.PixelsPerInch := 96;
- end;
- ZombieKillerLabel := TLabel.Create(AZK);
- with ZombieKillerLabel do
- begin
- ZombieKillerLabel := TLabel.Create(AZK);
- ZombieKillerLabel.Parent := AZK;
- ZombieKillerLabel.Left := 112;
- ZombieKillerLabel.Top := 8;
- ZombieKillerLabel.Width := 165;
- ZombieKillerLabel.Height := 19;
- ZombieKillerLabel.Alignment := taCenter;
- ZombieKillerLabel.Caption := 'Armouzed Zombies Killer';
- ZombieKillerLabel.Color := clBackground;
- ZombieKillerLabel.Font.Color := clTeal;
- ZombieKillerLabel.Font.Height := -16;
- ZombieKillerLabel.Font.Name := 'Calibri';
- ZombieKillerLabel.Font.Style := [fsBold, fsItalic];
- ZombieKillerLabel.ParentColor := False;
- ZombieKillerLabel.ParentFont := False;
- ZombieKillerLabel.Transparent := True;
- ZombieKillerLabel.Layout := tlCenter;
- ZombieKillerLabel.ONDBLCLICK:= @GetInfo;
- end;
- Panel := TPanel.Create(AZK);
- with Panel do
- begin
- Panel.Parent := AZK;
- Panel.Left := 8;
- Panel.Top := 32;
- Panel.Width := 369;
- Panel.Height := 393;
- Panel.BevelInner := bvRaised;
- Panel.Font.Color := clTeal;
- Panel.Font.Height := -11;
- Panel.Font.Name := 'Courier';
- Panel.Font.Style := [];
- Panel.ParentFont := False;
- Panel.TabOrder := 0;
- end;
- Bevel1 := TBevel.Create(Panel);
- with Bevel1 do
- begin
- Bevel1.Parent := Panel;
- Bevel1.Left := 192;
- Bevel1.Top := 8;
- Bevel1.Width := 169;
- Bevel1.Height := 233;
- Bevel1.Style := bsRaised;
- end;
- Familiars := TLabel.Create(Panel);
- with Familiars do
- begin
- Familiars.Parent := Panel;
- Familiars.Left := 24;
- Familiars.Top := 16;
- Familiars.Width := 88;
- Familiars.Height := 19;
- Familiars.Caption := 'Use Familiars';
- Familiars.Font.Color := clBlue;
- Familiars.Font.Height := -16;
- Familiars.Font.Name := 'Calibri';
- Familiars.Font.Style := [fsBold, fsItalic];
- Familiars.ParentFont := False;
- end;
- DPotions := TLabel.Create(Panel);
- with DPotions do
- begin
- DPotions.Parent := Panel;
- DPotions.Left := 24;
- DPotions.Top := 48;
- DPotions.Width := 88;
- DPotions.Height := 19;
- DPotions.Caption := 'Drink Potions';
- DPotions.Font.Color := clBlue;
- DPotions.Font.Height := -16;
- DPotions.Font.Name := 'Calibri';
- DPotions.Font.Style := [fsBold, fsItalic];
- DPotions.ParentFont := False;
- end;
- UseSS := TLabel.Create(Panel);
- with UseSS do
- begin
- UseSS.Parent := Panel;
- UseSS.Left := 24;
- UseSS.Top := 80;
- UseSS.Width := 84;
- UseSS.Height := 19;
- UseSS.Caption := 'Use Prayer';
- UseSS.Font.Color := clBlue;
- UseSS.Font.Height := -16;
- UseSS.Font.Name := 'Calibri';
- UseSS.Font.Style := [fsBold, fsItalic];
- UseSS.ParentFont := False;
- end;
- WTDPots := TLabel.Create(Panel);
- with WTDPots do
- begin
- WTDPots.Parent := Panel;
- WTDPots.Left := 24;
- WTDPots.Top := 112;
- WTDPots.Width := 131;
- WTDPots.Height := 19;
- WTDPots.Caption := 'When To Drink Pots';
- WTDPots.Font.Color := clBlue;
- WTDPots.Font.Height := -16;
- WTDPots.Font.Name := 'Calibri';
- WTDPots.Font.Style := [fsBold, fsItalic];
- WTDPots.ParentFont := False;
- end;
- WTRP := TLabel.Create(Panel);
- with WTRP do
- begin
- WTRP.Parent := Panel;
- WTRP.Left := 24;
- WTRP.Top := 144;
- WTRP.Width := 137;
- WTRP.Height := 19;
- WTRP.Caption := 'When To Renew Prayer';
- WTRP.Font.Color := clBlue;
- WTRP.Font.Height := -16;
- WTRP.Font.Name := 'Calibri';
- WTRP.Font.Style := [fsBold, fsItalic];
- WTRP.ParentFont := False;
- end;
- WTEF := TLabel.Create(Panel);
- with WTEF do
- begin
- WTEF.Parent := Panel;
- WTEF.Left := 24;
- WTEF.Top := 176;
- WTEF.Width := 119;
- WTEF.Height := 19;
- WTEF.Caption := 'When To Eat Food';
- WTEF.Font.Color := clBlue;
- WTEF.Font.Height := -16;
- WTEF.Font.Name := 'Calibri';
- WTEF.Font.Style := [fsBold, fsItalic];
- WTEF.ParentFont := False;
- end;
- Bevel2 := TBevel.Create(Panel);
- with Bevel2 do
- begin
- Bevel2.Parent := Panel;
- Bevel2.Left := 192;
- Bevel2.Top := 288;
- Bevel2.Width := 168;
- Bevel2.Height := 68;
- Bevel2.Style := bsRaised;
- end;
- Developer := TLabel.Create(Panel);
- with Developer do
- begin
- Developer.Parent := Panel;
- Developer.Left := 112;
- Developer.Top := 256;
- Developer.Width := 122;
- Developer.Height := 19;
- Developer.Caption := 'Developer Options';
- Developer.Font.Color := clRed;
- Developer.Font.Height := -16;
- Developer.Font.Name := 'Calibri';
- Developer.Font.Style := [fsBold, fsItalic];
- Developer.ParentFont := False;
- end;
- PSmartLabel := TLabel.Create(Panel);
- with PSmartLabel do
- begin
- PSmartLabel.Parent := Panel;
- PSmartLabel.Left := 24;
- PSmartLabel.Top := 296;
- PSmartLabel.Width := 102;
- PSmartLabel.Height := 19;
- PSmartLabel.Caption := 'Paint On Smart';
- PSmartLabel.Font.Color := clYellow;
- PSmartLabel.Font.Height := -16;
- PSmartLabel.Font.Name := 'Calibri';
- PSmartLabel.Font.Style := [fsBold, fsItalic];
- PSmartLabel.ParentFont := False;
- end;
- Label1 := TLabel.Create(Panel);
- with Label1 do
- begin
- Label1.Parent := Panel;
- Label1.Left := 24;
- Label1.Top := 328;
- Label1.Width := 42;
- Label1.Height := 19;
- Label1.Caption := 'Debug';
- Label1.Font.Color := clYellow;
- Label1.Font.Height := -16;
- Label1.Font.Name := 'Calibri';
- Label1.Font.Style := [fsBold, fsItalic];
- Label1.ParentFont := False;
- end;
- Label2 := TLabel.Create(Panel);
- with Label2 do
- begin
- Label2.Parent := Panel;
- Label2.Left := 24;
- Label2.Top := 208;
- Label2.Width := 84;
- Label2.Height := 19;
- Label2.Caption := 'List Of Foods';
- Label2.Font.Color := clBlue;
- Label2.Font.Height := -16;
- Label2.Font.Name := 'Calibri';
- Label2.Font.Style := [fsBold, fsItalic];
- Label2.ParentFont := False;
- end;
- Familiar := TComboBox.Create(Panel);
- with Familiar do
- begin
- Familiar.Parent := Panel;
- Familiar.Left := 200;
- Familiar.Top := 16;
- Familiar.Width := 152;
- Familiar.Height := 21;
- Familiar.Style := csDropDownList;
- Familiar.ItemHeight := 13;
- Familiar.TabOrder := 0;
- Familiar.ITEMS.Add('None');
- Familiar.Items.Add('Bunyip');
- Familiar.Items.Add('Unicorn');
- Familiar.ITEMINDEX:= 0;
- Familiar.ONCHANGE:= @GetInfo;
- end;
- Potions := TComboBox.Create(Panel);
- with Potions do
- begin
- Potions.Parent := Panel;
- Potions.Left := 200;
- Potions.Top := 48;
- Potions.Width := 153;
- Potions.Height := 21;
- Potions.Style := csDropDownList;
- Potions.ItemHeight := 13;
- Potions.TabOrder := 1;
- Potions.ITEMS.Add('None');
- Potions.ITEMS.Add('SuperSet');
- Potions.Items.Add('SuperAttack');
- Potions.Items.Add('SuperStrength');
- Potions.Items.Add('SuperDefence');
- Potions.Items.Add('OverLoad');
- Potions.Items.Add('AtkStr Pure');
- Potions.Items.Add('AtkDef Pure');
- Potions.Items.Add('StrDef Pure');
- Potions.ITEMINDEX:= 0;
- Potions.ONCHANGE:= @GetInfo;
- end;
- WhenToDrink := TEdit.Create(Panel);
- with WhenToDrink do
- begin
- WhenToDrink.Parent := Panel;
- WhenToDrink.Left := 200;
- WhenToDrink.Top := 112;
- WhenToDrink.Width := 153;
- WhenToDrink.Height := 21;
- WhenToDrink.Font.Color := clTeal;
- WhenToDrink.Font.Height := -13;
- WhenToDrink.Font.Name := 'Courier New';
- WhenToDrink.Font.Style := [];
- WhenToDrink.MaxLength := 0;
- WhenToDrink.ParentFont := False;
- WhenToDrink.TabOrder := 2;
- WhenToDrink.Text := ToStr(WTD);
- WhenToDrink.ONCLICK:= @GetInfo;
- WhenToDrink.ONCHANGE:= @GetInfo;
- end;
- SoulSplit := TComboBox.Create(Panel);
- with SoulSplit do
- begin
- SoulSplit.Parent := Panel;
- SoulSplit.Left := 200;
- SoulSplit.Top := 80;
- SoulSplit.Width := 153;
- SoulSplit.Height := 21;
- SoulSplit.Style := csDropDownList;
- SoulSplit.ItemHeight := 13;
- SoulSplit.TabOrder := 3;
- SoulSplit.Items.Add('True');
- SoulSplit.Items.Add('False');
- if QP then
- SoulSplit.ITEMINDEX:= 0
- else
- SoulSplit.ITEMINDEX:= 1;
- SoulSplit.ONCHANGE:= @GetInfo;
- end;
- WhenToPray := TEdit.Create(Panel);
- with WhenToPray do
- begin
- WhenToPray.Parent := Panel;
- WhenToPray.Left := 200;
- WhenToPray.Top := 144;
- WhenToPray.Width := 153;
- WhenToPray.Height := 21;
- WhenToPray.Font.Color := clTeal;
- WhenToPray.Font.Height := -13;
- WhenToPray.Font.Name := 'Courier New';
- WhenToPray.Font.Style := [];
- WhenToPray.MaxLength := 0;
- WhenToPray.ParentFont := False;
- WhenToPray.TabOrder := 4;
- WhenToPray.Text := ToStr(WTP);
- WhenToPray.ONCHANGE:= @GetInfo;
- WhenToPray.ONCLICK:= @GetInfo;
- end;
- WhenToEat := TEdit.Create(Panel);
- with WhenToEat do
- begin
- WhenToEat.Parent := Panel;
- WhenToEat.Left := 200;
- WhenToEat.Top := 176;
- WhenToEat.Width := 153;
- WhenToEat.Height := 21;
- WhenToEat.Font.Color := clTeal;
- WhenToEat.Font.Height := -13;
- WhenToEat.Font.Name := 'Courier New';
- WhenToEat.Font.Style := [];
- WhenToEat.MaxLength := 0;
- WhenToEat.ParentFont := False;
- WhenToEat.TabOrder := 5;
- WhenToEat.Text := ToStr(WTE);
- WhenToEat.ONCHANGE:= @GetInfo;
- WhenToEat.ONCLICK:= @GetInfo;
- end;
- PaintOnSmartX := TComboBox.Create(Panel);
- with PaintOnSmartX do
- begin
- PaintOnSmartX.Parent := Panel;
- PaintOnSmartX.Left := 200;
- PaintOnSmartX.Top := 296;
- PaintOnSmartX.Width := 153;
- PaintOnSmartX.Height := 21;
- PaintOnSmartX.Style := csDropDownList;
- PaintOnSmartX.ItemHeight := 13;
- PaintOnSmartX.TabOrder := 6;
- PaintOnSmartX.ITEMS.Add('True');
- PaintOnSmartX.ITEMS.Add('False');
- if (Paint = True) then
- PaintOnSmartX.ITEMINDEX:= 0
- else
- PaintOnSmartX.ITEMINDEX:= 1;
- PaintOnSmartX.ONCHANGE:= @GetInfo;
- end;
- Debug := TComboBox.Create(Panel);
- with Debug do
- begin
- Debug.Parent := Panel;
- Debug.Left := 200;
- Debug.Top := 328;
- Debug.Width := 153;
- Debug.Height := 21;
- Debug.Style := csDropDownList;
- Debug.ItemHeight := 13;
- Debug.TabOrder := 7;
- Debug.ITEMS.Add('True');
- Debug.ITEMS.Add('False');
- if (Debugs = True) then
- Debug.ITEMINDEX:= 0
- else
- Debug.ITEMINDEX:= 1;
- Debug.ONCHANGE:= @GetInfo;
- end;
- FoodBox := TListBox.Create(Panel);
- with FoodBox do
- begin
- FoodBox.Parent := Panel;
- FoodBox.Left := 200;
- FoodBox.Top := 208;
- FoodBox.Width := 153;
- FoodBox.Height := 25;
- FoodBox.Font.Color := clTeal;
- FoodBox.Font.Height := -16;
- FoodBox.Font.Name := 'Calibri';
- FoodBox.Font.Style := [];
- FoodBox.ItemHeight := 19;
- FoodBox.ITEMS.Add('None');
- FoodBox.ITEMS.Add('Raw Lobster');
- FoodBox.ITEMS.Add('Raw Shark');
- FoodBox.Items.Add('Shark');
- FoodBox.Items.Add('Lobster');
- FoodBox.Items.Add('Tuna');
- FoodBox.Items.Add('Sardine');
- FoodBox.Items.Add('Rocktail');
- FoodBox.Items.Add('Bass');
- FoodBox.Items.Add('SwordFish');
- FoodBox.Items.Add('MonkFish');
- FoodBox.Items.Add('CaveFish');
- FoodBox.Items.Add('Turtle');
- FoodBox.Items.Add('MantaRay');
- FoodBox.MultiSelect := True;
- FoodBox.ParentFont := False;
- FoodBox.TabOrder := 8;
- FoodBox.ONCLICK := @GetInfo;
- end;
- Save := TButton.Create(Panel);
- with Save do
- begin
- Save.Parent := Panel;
- Save.Left := 200;
- Save.Top := 368;
- Save.Width := 57;
- Save.Height := 20;
- Save.Caption := 'Save';
- Save.Font.Color := clBlue;
- Save.Font.Height := -11;
- Save.Font.Name := 'Courier';
- Save.Font.Style := [fsBold];
- Save.ParentFont := False;
- Save.TabOrder := 9;
- Save.ONCLICK:= @GetInfo;
- end;
- Start := TButton.Create(AZK);
- with Start do
- begin
- Start.Parent := AZK;
- Start.Left := 96;
- Start.Top := 400;
- Start.Width := 57;
- Start.Height := 20;
- Start.Caption := 'Start';
- Start.Font.Color := clBlue;
- Start.Font.Height := -11;
- Start.Font.Name := 'Courier';
- Start.Font.Style := [fsBold];
- Start.ParentFont := False;
- Start.MODALRESULT:= mrNone;
- Start.TabOrder := 1;
- Start.ONCLICK:= @GetInfo;
- end;
- Timer1 := TTimer.Create(AZK);
- with Timer1 do
- begin
- Timer1.INTERVAL:= 1000;
- Timer1.ENABLED:= true;
- end;
- SaveDialog1 := TSaveDialog.Create(AZK);
- with SaveDialog1 do
- begin
- end;
- end;
- procedure SafeInitForm;
- var
- v: TVariantArray;
- begin
- Closed:= False;
- setarraylength(V, 0);
- ThreadSafeCall('InitForm', v);
- end;
- procedure ShowFormModal;
- begin
- AZK.ShowModal;
- end;
- procedure SafeShowFormModal;
- var
- v: TVariantArray;
- begin
- setarraylength(V, 0);
- ThreadSafeCall('ShowFormModal', v);
- end;
- Procedure LoadDTMs;
- begin
- WaitFight_Shield := DTMFromString('mrAAAAHic42BgYOAFYgEg5gdiHiBmB2I+IGaBijECMRMQs0LlQOJcUBqkl9XUCS8mBBgJYBgAAK0nBH8=');
- WaitFight_Damage := DTMFromString('mbQAAAHicY2VgYNBmhGAdINYDYn0glgZiBSBWBmI5IJYA4nQ2NoYEPj4wns3DA6a5gPrRMSMWDAYAIPEEVA==');
- end;
- Procedure FreeLoadedDTMs;
- begin
- FreeDTM(WaitFight_Shield);
- FreeDTM(WaitFight_Damage);
- end;
- Function FindObjectMM(Colors: TIntegerArray; var Dist: Integer; Width, Height, tol: integer; Click: Boolean; Speed: TExtendedArray): Boolean;
- var
- I, CTS, X, Y: integer;
- TPA: TPointArray;
- ATPA: T2DPointArray;
- begin
- SetLength(TPA, Length(Colors));
- CTS:= GetToleranceSpeed;
- SetColorToleranceSpeed(2);
- SetToleranceSpeed2Modifiers(Speed[0], Speed[1]);
- For I:= 0 To High(Colors) do
- FindColorsSpiralTolerance(MSCX, MSCY, TPA, Colors[i], MMX1, MMY1, MMX2, MMY2, tol); //Find colours starting from the middle outwards..
- SetToleranceSpeed2Modifiers(0.2, 0.2);
- SetColorToleranceSpeed(CTS);
- FilterPointsPie(TPA, 0.0, 360.0, 0.0, 74.0, MMCX, MMCY); //Filter them so they are on the MM itself..
- ATPA:= TPAToATPAEx(TPA, Width, Height); //Group TPA into cirles by Distance..
- SortATPAFromFirstPoint(ATPA, Point(MMCX, MMCY)); //Sort the colours from the closest to the center.. AKA Me..
- if(Length(ATPA) < 1) then
- Exit;
- MiddleTPAEx(ATPA[0], X, Y); //In that 2D Array, Pick out the closest to the middle a.k.a. the first one..
- if Click then
- MMouse(X, Y, 5, 5); //Move the mouse to the colours found..
- Wait(randomrange(200, 500));
- begin
- if Click then
- ClickMouse2(True);
- Dist:= Distance(X, Y, MMCX, MMCY);
- Result:= ((X <> 0) AND (Y <> 0));
- end;
- if Debugs then
- DebugTPA(ATPA[0], '');
- FFinder:= 'FindObjMM';
- end;
- Function FindObjectFX(Colors: TIntegerArray; Uptext: TStringArray; X1, Y1, X2, Y2, Width, Height, tol: integer; Click: Boolean): Boolean;
- var
- X, Y, I: integer;
- TPA: TPointArray;
- ATPA: T2DPointArray;
- begin
- SetLength(TPA, Length(Colors));
- For I:= 0 To High(Colors) do
- FindColorsSpiralTolerance(MSCX, MSCY, TPA, Colors[i], X1, Y1, X2, Y2, tol); //Find colours starting from the middle outwards..
- ATPA:= TPAToATPAEx(TPA, Width, Height); //Group TPA into cirles by Distance..
- SortATPAFromFirstPoint(ATPA, Point(MSCX, MSCY)); //Sort the colours from the closest to the center..
- if(Length(ATPA) = 0) then
- Exit;
- MiddleTPAEx(ATPA[0], X, Y); //In that 2D Array, Pick out the closest to the middle a.k.a. the first one..
- MMouse(x, y, 5, 5); //Move the mouse to the colours found..
- if Debugs then
- DebugTPA(ATPA[0], '');
- Wait(randomrange(200, 500)); //Wait for the uptext to show..
- If(IsUpTextMultiCustom(UpText)) then
- begin
- if Click then
- begin
- ClickMouse2(False); //If it finds it, click the object/item..
- wait(500);
- if ChooseOptionMulti(UpText) then
- begin
- Result := True; //If it clicks the object, return true..
- Exit;
- end;
- end else
- Result := True
- end else
- Result:= (((X <> 0) and (Y <> 0)) and (Click = False)) ;
- FFinder:= 'FindObjectFX';
- UptextF:= Uptext;
- end;
- function AutoColourLadder: Boolean;
- var
- arP, arAP: TPointArray;
- arC, arUC: TIntegerArray;
- ararP: T2DPointArray;
- tmpCTS, i, j, arL, arL2: Integer;
- P: TPoint;
- R, G, B, fx, fy: Integer;
- X, Y, Z: Extended;
- begin
- tmpCTS := GetColorToleranceSpeed;
- ColorToleranceSpeed(2);
- SetColorSpeed2Modifiers(0.09, 0.26);
- if not(FindColorsTolerance(arP, 2509141, MSX1, MSY1, MSX2, MSY2, 5)) then
- begin
- ColorToleranceSpeed(tmpCTS);
- SetColorSpeed2Modifiers(0.2, 0.2);
- Exit;
- end;
- arC := GetColors(arP);
- arUC := arC;
- ClearSameIntegers(arUC);
- arL := High(arUC);
- arL2 := High(arC);
- for i := 0 to arL do
- begin
- ColorToRGB(arC[i], R, G, B);
- if (R >= 68) and (R <= 103) and (G >= 57) and (G <= 88) and (B >= 29) and (B <= 46) then
- begin
- ColorToXYZ(arC[i], X, Y, Z);
- if (X >= 4.18) and (X <= 9.38) and (Y >= 4.37) and (Y <= 9.85) and (Z >= 1.83) and (Z <= 3.91) then
- begin
- for j := 0 to arL2 do
- begin
- if (arUC[i] = arC[j]) then
- begin
- SetLength(arAP, Length(arAP) + 1);
- arAP[High(arAP)] := arP[j];
- end;
- end;
- end;
- end;
- end;
- SortTPAFrom(arAP, Point(MSCX, MSCY));
- ararP := SplitTPAEx(arAP, 20, 20);
- arL := High(ararP);
- for i := 0 to arL do
- begin
- if (Length(ararP[i]) < 10) then Continue;
- P := MiddleTPA(ararP[i]);
- MMouse(P.x, P.y, 5, 5);
- Wait(100 + Random(100));
- if (IsUpTextMultiCustom(['adder', 'up Lad', 'limb-up'])) then
- begin;
- Result := True;
- Break;
- end;
- end;
- ColorToleranceSpeed(tmpCTS);
- SetColorSpeed2Modifiers(0.2, 0.2);
- if (i = arL + 1) then
- begin
- Writeln('Failed To Find Ladder.');
- Exit;
- end;
- GetMousePos(fx, fy);
- if Result then
- begin
- ClickMouse2(MOUSE_RIGHT);
- WaitOptionMulti(['adder', 'up Lad', 'limb-up'], 600);
- end;
- end;
- function AutoColourAltar: Boolean;
- var
- arP, arAP: TPointArray;
- arC, arUC: TIntegerArray;
- ararP: T2DPointArray;
- tmpCTS, i, j, arL, arL2: Integer;
- P: TPoint;
- R, G, B, fx, fy: Integer;
- X, Y, Z: Extended;
- begin
- tmpCTS := GetColorToleranceSpeed;
- ColorToleranceSpeed(2);
- SetColorSpeed2Modifiers(0.10, 0.45);
- if not(FindColorsTolerance(arP, 2895164, MSX1, MSY1, MSX2, MSY2, 11)) then
- begin
- ColorToleranceSpeed(tmpCTS);
- SetColorSpeed2Modifiers(0.2, 0.2);
- Exit;
- end;
- arC := GetColors(arP);
- arUC := arC;
- ClearSameIntegers(arUC);
- arL := High(arUC);
- arL2 := High(arC);
- for i := 0 to arL do
- begin
- ColorToRGB(arC[i], R, G, B);
- if (R >= 28) and (R <= 95) and (G >= 21) and (G <= 66) and (B >= 21) and (B <= 64) then
- begin
- ColorToXYZ(arC[i], X, Y, Z);
- if (X >= 0.92) and (X <= 7.42) and (Y >= 0.87) and (Y <= 6.54) and (Z >= 0.86) and (Z <= 5.59) then
- begin
- for j := 0 to arL2 do
- begin
- if (arUC[i] = arC[j]) then
- begin
- SetLength(arAP, Length(arAP) + 1);
- arAP[High(arAP)] := arP[j];
- end;
- end;
- end;
- end;
- end;
- SortTPAFrom(arAP, Point(MSCX, MSCY));
- ararP := SplitTPAEx(arAP, 20, 20);
- arL := High(ararP);
- for i := 0 to arL do
- begin
- if (Length(ararP[i]) < 10) then Continue;
- P := MiddleTPA(ararP[i]);
- MMouse(P.x, P.y, 5, 5);
- Wait(100 + Random(100));
- if (IsUpTextMultiCustom(['ray-at', 'haos altar', 'altar'])) then
- begin;
- Result := True;
- Break;
- end;
- end;
- ColorToleranceSpeed(tmpCTS);
- SetColorSpeed2Modifiers(0.2, 0.2);
- if (i = arL + 1) then
- begin
- Writeln('Failed To Find Altar.');
- Exit;
- end;
- GetMousePos(fx, fy);
- if Result then
- begin
- ClickMouse2(MOUSE_RIGHT);
- WaitOptionMulti(['ray-at', 'haos altar', 'altar'], 600);
- end;
- end;
- //Written By Flight..
- Function FoundSymbol(Ident: Integer; var X, Y, Dist: Integer): Boolean;
- var
- B: TBox;
- TPA: TPointArray;
- L,i,CTS: Integer;
- ATPA,ATPA2: T2DPointArray;
- begin
- FFinder:= 'FoundSymbol';
- CTS := GetColorToleranceSpeed;
- ColorToleranceSpeed(2);
- FindColorsTolerance(TPA, 12632256, MMX1, MMY1, MMX2, MMY2, 5);
- ColorToleranceSpeed(CTS);
- if Length(TPA) < 1 then
- Exit;
- ATPA := TPAtoATPAEx(TPA, 8, 8);
- L := High(ATPA);
- SetArrayLength(ATPA2, L+1);
- for i := 0 to L do
- begin
- B := GetTPABounds(ATPA[i]);
- with B do
- begin
- if (Ident = 1) then
- FindColorsTolerance(ATPA2[i], 16514299, B.X1-8, B.Y1-8, B.X2+8, B.Y2+8, 5) //Prayer Altar White Symbol..
- else if (Ident = 2) then
- FindColorsTolerance(ATPA2[I], 1244922, B.X1-8, B.Y1-8, B.X2+8, B.Y2+8, 5); //Prayer Altar Yellow Symbol..
- Result := (Length(ATPA2[i]) > 0);
- if Result then
- begin
- MiddleTPAEx(ATPA2[i], X, Y);
- Dist := Distance(MMCX, MMCY, X, Y);
- LProc:= 'FoundSymbol';
- if Debugs then
- writeln('FoundSymbol: True');
- Exit;
- end;
- end;
- end;
- end;
- function round2(Number: extended;Places: longint): extended;
- begin
- result := round((Number*pow(10, places))/(pow(10, places)));
- end;
- Procedure ResetEverything;
- begin
- ColorToleranceSpeed(RCTS);
- SetColorSpeed2Modifiers(0.2, 0.2);
- end;
- procedure PrintOnSmart(TP: TStringArray; Placement: TPoint; Colours: TIntegerArray);
- var
- x, y, bmp, I, B, H: Integer;
- ATPA: T2DPointArray;
- Canvas: TCanvas;
- Colors: TIntegerArray;
- begin
- GetClientDimensions(x, y);
- Bmp := BitmapFromString(507, 163, 'meJzsvXdwG9e352n7JwJoMCfJ' +
- 'UbZly5KVmUlkgMhEJHIgco4Ec85BFDMUqJxlZVGS87NkW372++Xw0' +
- 'syb92Z239TW1Gzt7rya2trZ3dq/9oLXbLfAIJKWTIU+9S0W2Gjcvt' +
- '1ofPrcc+8996WXcMMNN9xwww033HDDDTfccMMNN9xwww033HDDDTf' +
- 'ccMMNN9xwww033HDDDbdkk1WJBxoDQ221dBqFQCCsd3Vwww033HB7' +
- 'IiYS8j850v35sb7PjvXPHuySigTrXSPccMMNN9wes5HJZJFIdGio4' +
- '+qhwZP9sWN9dWcG67Zu3bre9cINN9xww+1xWn5+frShaWKg80h/01' +
- 'h7NObQdbU1dTRE1rteuOGGG264PWZTabVtbS1TnbXDTcHBOldLrb+' +
- 'hqy/S2JyamrreVcMNN9xww+2xGYNBb64Lt/hrDjQH++o8DS5dsLY2' +
- '1NAUa20rKSlZ79rhhtvzYAQCQSCys9hV610R3F5o27ZtW0+tpztk8' +
- '1Zz6s3SgE5ktxj0dpfN44s0tag0mvWuIG64PfOWnp7OYEdffbNx05' +
- 'tRvsBBIpHWu0a4vaBW43XZYk6LTlbNKq5mFRlF9JDHZrE77P6Qv7b' +
- 'eYrOvdwVxw+2ZN57Es+mN2MY3AvmvufNf81bQI6+//sZ6Vwq3F86A' +
- '42FvbpR5OpgyM3PfB+U73pUwyjqD1qhd57YaXT6/3eVe7zrihtuzb' +
- 'Uxm5aY3InmvufJeteVsNOZuMm583VdG8eN+Pm6/sFVyuaGxYZV9gC' +
- 'NsoDPLCyiFFXyWXMz26WVDMVcs5LW5XOtdR9xwe4btPWDb6/Nf9+W' +
- '+agGoz85XZedV526qyX89IBCa17t2uL1AtmHDBqPNHhjtH5g90XL+' +
- 'sHe0U9XkpVRZK0RmpcNUF7IHfC6L3bHe1cQNt2fVCAQCnR3Z+GZd3' +
- 'qvWnHxNVp4iM0eUmSPMztcAbz93k4tCZa53HXF7UayouJirqwkMdE' +
- 'SO9LdcGI8dG4qdGlY6OinURrm7PdhXb7GYFdXV611N3HB7Vk0oNr+' +
- '6uT3/dVdOvhpwPj2LnZpRkZZBycwV52zU52607SoIvrV583pXE7cX' +
- 'wjIzM8srKrqOT/lGO7vOHGo7MT14/dTgzVO1U5O18bG65pBCqSwuL' +
- 'l7vauKG2zNpZeW0Vzd35L3mS8tWkdJ5xFQagVyaQtpDIO0mpVWkZw' +
- 'tzNhmy86x8UQC0tde7sri9EAbutO4ThzrPHew4PR3c3+PqbnF0Nnj' +
- 'H2tpPjjvt5hqTAU+ehhtuazOe0LfxzVjOphpypjSFzP4VqexXxL2/' +
- 'Iu76FWFnCqkoNZOdmSvN2WjK22R5550t611Z3F4IS8/IqBucVNsaH' +
- 'N3N/okOV3+zsSGsawrVDbZZddV6rWq9K4gbbs+kpaenf7gnmveqI2' +
- 'eTPiuvKjWDQSAXphC3AxGRneT0koxsTkY2LytXlp1noNE4611f3F4' +
- 'IA8DvO3nE4G6XaWP+4f7waK+nv8M90OHzWa169dt4dBE33NZkO3ft' +
- 'zn/NnbNRn7NRnZUrychmp2VSyGn7EkovTMuomAM+EDczWyaW4kMjc' +
- 'PslDPghHQcnAoOd7t62yOiQr6/T1dOqrwtwOLjLgRtuazcevzp3kz' +
- 'V3kwF4+Nn51Vm5VRk5/LQsZloWIz2LlZFdCf5NKJubniWgMvHBz7j' +
- '9Epaamto4Mhgc6HV1Nde01OoaAqbmiNmN+xu44fazjMpwzA28NOcA' +
- '5m/UZOXJM3NFAO8J5fAycgRzEs4N3RFu2WrIz89f7yrj9vzbhg0b2' +
- 'iZH5F6r3GMVeUwin9HZ01yt0653vXDD7Rkw8PMpKCjJzs5J2p6Tk/' +
- 'PeB/a8V+25m0w5G7UJDz9PAvz59Cw2EAzmpAMnP5uXkQ38fEF6loT' +
- 'OrFxYfnZ2Nj6AB7fV2iuvvLJwI7iRcnNzwR119ft79o46a0ddZKK/' +
- '4fBI95nDBz++FmyIbdq0qbyCQqPTyWTyL19n3HB7yo1AIFQp3Pln/' +
- '7z9/t9WDk2WMtkonDdu3PjuVl/eq3MhnY3q7DzFXEiHl57FmhN77i' +
- '8Tvs7I4qRlCmn0n4Ko77z3Hs/ro3w0+0HbZaFItk7nh9szaenp6bU' +
- 'NDY2trXQGA70h+SJxQ3PLmS++aekZ2H905vT9T498NXvw8+vxz6+d' +
- '+e6LSz/cm756yR+ubdo/MXhwpmNgGMB/fc8CN9yeNktNTVVU6V7Vx' +
- '7P/+N/z/+H/zPvd/0YdOPXa66+/NPej27mvNjG7FgI/fyHwmT8qkw' +
- 'GUncfbtv3Dl+YGUYgPzGz+0/+88T//P1n3/8sWTr1Ga1zvE8XtWTJ' +
- 'fJNp28PjQxGTvyIHuwWGTuWbz5s37T5xt6+qZvDLbMDim19d4I7GO' +
- 'qTHg2J/67rNjn8829w/UWF1Gg6VtLN47ebC9f7BjdKKgsHC9TwU33' +
- 'J4uq+RyKcW8PFZn5kd/yvvyX3Mv/dfC+P3X30ikwSypaM19tSZnky' +
- '47X5mVJ8nMFSbCOFn0OTHSMmlzYiSUQU/PZr275T1Ae+7MJ3nf/o+' +
- 'N//x/ZU7/8Fahg1JUXlBYtN5nidszY2aLhSFV+adPtQ4Odw4M9o+O' +
- 'Hzl9ZjB+pP/Y2aa2jpaRiY4jZ4xmm85o0elrHP5QbV93jdtjMNgcL' +
- 'r/F4mibmqnrGXD7gwMnzl9+8M3EyWNShRxP8Ycbbqjx+fzyAlbmZk' +
- 't63d3c0/8u78L/Unb+j//pv/wfVdKB7HxNVsK3l2TmCOdG4zDTMql' +
- 'zoqRmVMAcCz+Sn1xx/zf/zvPr/5rz5f+bP/tvafpjb77Bq2SxCwoK' +
- '1vv8cHtmTK3VllZQduzZKwk1BftHW7q6+8cm+kYOeBo6embO1DY0h' +
- 'eqbes9ft7gDaq3JbHU5vcGewf2NbV0Gs91sAciP9Jy95gpHTVZb/e' +
- 'BY28TBL/7+T1/++z+fun3dHQy8/fbb631+uOH2VBiVSi0vZma9pkt' +
- 'v/Dz32F9yz/9r0ZX/tJfXnpVVlZUnm3PvRRk5APisObyjwC+fU0Vq' +
- 'aln2u5IPL/9L7pf/d/6t/57KnXg9q1CpkL8+Fx3CDbdHWmZmpkano' +
- 'zBZFQwmlcHYQ2Go6zqdwcjA2HhzZ5fRE+48dMIbCttcHm97n7u1V6' +
- '0xekO1zV3dFk+kb2x6cuaY2xfyd/QHBsYUKvCmKdJ/QO8MDhw++Nn' +
- 'f//Gzf/jDV//0d5e/+iItLW29TxQ33J4K27VrF51SmbfFmt76V7ln' +
- '/ynvzH/KKohlZYiy8uRZedLMXHFiKGYWKz2TPg/8chT4yIY9mfL+j' +
- 'ff/v7zr/y1TPPnOa4UarQZPaYLbCu2DbduUGg2bL2Tx+IxKrt3rp7' +
- 'HYRSKlMRDpGd5fY3dXyTUN0yd0Fpu8WqUwWr2Dk50Dw8fOn2/o7Of' +
- 'KLBprePrEqeljxzsPHjM1dnFEEqFI7OoarjY6lCrdyc/u3P3z7z7+' +
- '+9998re/LyzCo4u44fajlZSWFu0peX23O6P/h7yz/5K6t5WQQiOmc' +
- 'UhplaQ0NjGNTkytIKaWE1NLCeSSFHJxClI497co5VfF2c1f5t79H3' +
- 'nVh95/c49KheczwW2lBnx7pVYLUC9WKLmiKpXB6IvWGm32HYXFVRa' +
- 'n3eMTVSmEIqm7Z0Tt8osMVkfPgfjZ89PHj48fnnGF63jyGrne0zE4' +
- '3NY3ODI9PXD4mKvngNBoMzX3CmWqigq6p6H+xu++v/Hbv57921/Xu' +
- 'PD5Wbjh9pNVSSQle4s2l/myjv5ThvX6yy9JXiZUvkxgv0xgvJRCfZ' +
- 'lA+xWJ+TKB+lJKxUspZS/9qvilDSUvv8wkF3fnXP1vr2snd7y3t6q' +
- 'qCu8jw23l9sorr2j1+kqBqEpZbbI73aFwsK7eaHOwuLwCFq9SKGVX' +
- 'CgSCKpXdZ+mbtLYPdB0YG5qYdoWbqjT2Gk9EqnVJ1Tart5Yj1lepz' +
- 'P5Y44EjRwNDU8pwM4XKLC2llFPpM5/euvLbB+f/5stYd9t6ny5uuD' +
- '1FBtwttUZTVlD8Hr82s6SvrNzN4noqaCZWpZlCr3n7fX32RvW7W3V' +
- 'lFCOVoS+jGsoojj173FmUyXetU8W7izhs1ltvvbXeJ4HbM2YEAqG5' +
- 'rb3G6a5r6/BFY55I1BkI6i3WIhqjkMah0Vh0Bocnlgd6huvb2w02u' +
- '87qqzZ5RdXWSqlZVG1j8KoZXJXK5DW7w9HW7oHxyeGpaW+ssbikoq' +
- 'CwZF9RSc/Jw+d++KuDX16z+laUAOSNHQW4cL0IemsXaEdHyopKK4r' +
- 'LS4q4dofb5fY7XX6Hywf+2h1+jc5prnFZrE6jyeZw+tzeIFBZmbyi' +
- 'mFq0dx9XZX+/mL7uZ4Hr2dKbOwvYVVKnPwjce0846gqGrR6fzevji' +
- 'sTbCoqpdHYFlSlTajoGBpu7e0wOZ/fw/sHxyd6RUeDYcyVGKkdudg' +
- 'bb+wfaBwf7xsb7Rsebe3pjLa1cgXgfwH0FpX5i/8zntyZmLxXyBCu' +
- 'sUvzud7hwPd+a/vi3x7/5Xyc+/tcyk7+CxuRweFy+RCiSicQKoUhe' +
- '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' +
- 'Aevq3uO0BxNbzHkmyuE4soKVsn2kt3vVFWWaWWV6iqWSsxUiZieSH' +
- 'T82perKn9i9huZv7HWJhiIKkdaaw6cGO+/fKbtxMHIoUHvaHvT8Ym' +
- 'OEwdHOuwuh3b/lS8mbt4T0RmiigoNh+OUShsbWlZyiF8Y+CjSoWA4' +
- 'JakcsB1gFhAYvAZOOHzrSQPfWvcH0KYAhwPPmqSzw/Wsavab/nMPA' +
- 'j2HTOEeTaA73xohav2I2I8Yg8QPq1MQVrpzMqPpQkbTJaThIqd2JO' +
- 'AKcli8Tc6htLqzGdETGXWn093xlFQOYWsV2RIFwCdrQ6/5GmsPXw8' +
- 'NXLY2H3Z3nQkOX+859dVKlpbD9Rxo/Ob9lpmPzANHqhpGtouN23ga' +
- 'Np+nE5YI6HspBe+zy3dVi5kKIUMupMsENBmfqlHJmkemVz5wd/rOt' +
- '9WhZqtB4tOxWr3Sibaa8YNdDTMj/pne0OGB9ovHDpyeGG3U8lW64Q' +
- 'uJ7PcanZlbUiKj0cx8fkNL10oO8QsDH8ZeIMYB7ZP8Z2wMHxAYvAb' +
- 'Yhw+FJw180NYAdQNbsI0OPIb/TKvj4Gl3y4Ap1Ki0eMRmV1ZNgKQN' +
- 'zgE/RNyqSCHQ06zjma0fpdefy4mdDDb124zWfQJNWvREevhoIrZff' +
- 'ybNNpFCYhDe4pNrwmRpiKwOZTpqPWMnfe2T5mivMdxlCLb5emambu' +
- 'HTr14gjV37svHIR7HJM2PXv6rrH5GyCqScIl7FLnrRB2J2qVzIqOJ' +
- 'RJFyKXEiT8qkidnm4bUUoBmoZHDaYlGq7M2zmRWt49VZ+h4Pf3lJT' +
- 'N9HUNFzb3hvobTRF7DKqRNU2PAz2D7cP0nfuEpWW6jic5u79KznEq' +
- 'oAP+AxpCZxhdNALADL4F8Zn4Lt0wd+B13A38BH0XVgC+BdgHO17RQ' +
- 'UKhHuC7fBBAOM/sEcAsB18CjwFYLQHlIY9LtwTFoi+RisTn4c8fL3' +
- 'oDrB88BeIV/0XWFs8hv9MK9I3rvPGNO6oRGfjaq0Z1giij5AlIXJN' +
- 'lPi+csNLZalV7ZnNF5C6swXR8fpos6JK/p6xMTV2JqP2ZMLDbziTK' +
- 'mnf8Eo5YSOHXBMhK2vJmlqivdbYN24LN6pdQYXVI7d4K+W69umT63' +
- '6yuNZFkzfvSUUcCbNAyipkl3xAL9oq4VGE7HIuvURcWQGAX8WtkIn' +
- 'YY1cfMUpn+va3HdPHau1VfmMlpybAtUVkRpPDbfA3+v2tUVedz1kf' +
- 'UBjVTL6gRKzhiQVObeXU7NcD5657o0F9tdxUJeqcOLySCq/LTNskR' +
- '3rln0oKAT1GAU8eBnOAwHMEPgXwGP4zrdqhuDHYJDO7hSojS2NJty' +
- 'aC8GRJkGwOE9+Vb3ipFCn1ZTSdT4sc14Q6/U4/U6jMCR1Jrz+bUT/' +
- 'Xk1t3CqEGN7xSlpJJJ+v95OooWRUhWCPVnSO2cFO1PSA1uSRGZwVH' +
- '5GzoXPeTxbVeivYM88o/rPfa2qNBo4wr41GAV8+iFHJoxQJWmYhTz' +
- 'meWhFoecYcMXbyrNGobnFVBA1upVRYYanfJXMKuMd3MeYq7udgUFn' +
- 'aP8zpHtrBU23kag4LpUlL6jp+f/PTTCz/cP/Pd50c/v37m3l/F8Vw' +
- '6KxYcogMFHit4JOc5UFv8jM5bJ9JaRSoT0+BIddYhhhhZHiXbYsR3' +
- 'APDLkDJHatP5beHpaLhJLa3eVe1JrT+fETudET2eHjmaETtBfE+dk' +
- 'lKRkkpFtH6yvp6srkux11XUdjiirQD4Yr1dqKkRqM16f926nyyu9d' +
- 'Lwhdusku3NIc/5mWPHxidaa6OqKj6bWkQp2c2sKKikFVXSiwSV9LE' +
- 'ry3Xuj1yY5Wl1DqO4zi706ColiioKv4rhDCiHxpjOENMRkLZ2iSL1' +
- 'hUwuX8xzqhkeLTMYtAxdPzfz5ez5b768+psHt/74Q/zOoweM4cCHg' +
- 'gP1Ua17fXD9fA2cuWEINIh0VonWQje6EGuErI2S5WGyJUJ4vYrwmj' +
- 'jjyDHy0XN7DxzxOfyVNPZr9r5U4NhHj2XUHktVdZE+0KWQmSkIPYV' +
- 'UjsgcZH0tWRFNqYlWNPT5Wvq0nqjE6EgUbnJZ6zrW/WRxraMM1pqI' +
- 'w3jm0OH+lpaA3e4wGrUyKY9BSTC/vJBVUVLF5dS29y1Twv6Tl+p7+' +
- 'oRSQcwqDJp4bg3DIqvQS6k2Pc9hErhMAquGUyOnW+QUq4JiVzGcKk' +
- 'bQId1/6dShz26c+uqTC3/1xY1ffzc1+1ePrCoOfFzPq0avfGaOtFb' +
- 'p7SKVsUxnJ9miZG2MXF0LPHzCG5KUDA7Z3Jh+6mTqiePvt7TtVpgz' +
- '3JPp4cNp2j7SDkMKUpGSUp4APpmeQihFhFayGbQOagnm2rK24VDfu' +
- 'CnYoLB4q4yOKqPT1zm87ieLax3Ve/wjt1F5aGQk5HS6zWabXq+Vyf' +
- 'QKhaiSTS0t4VBpYItGpVkm9cHAoeOTR4/rrXaLqjJk5tlVTGs13a1' +
- 'luTRMIIucWiOj2qsZZjnVIKkwySgOFT1iE/eenNp//ez47PmRy2f6' +
- 'zp5LKn/08iftkzMHLt7BbsSBj+t51dSt++7WAYnRKVTqCzQ2IvDw1' +
- 'dFEKN5aS3xTmpJC2/AyhVysz+roIh2cTps6hNC9xG3GlDR2yoayBP' +
- 'DJjB+Bn1JKouvINYmRmSRDZHusJ3LgiCnQILd4xTqrSGdrGF189bq' +
- 'VCPYT4Y3KZ12RhsaB1la/3Q7YbtFqNTKZWiJRCIWUkhIJn2/R6QRs' +
- 'dsdSnft3HgwdnBmJH1KZLEqF0G/kONQMW3VCNQqaRlSq4BWpBSVaU' +
- 'ZmSV6zkFRkk5WCHWps4tr/NM9Ju6W0TBVqqIsOd8ytqtU4csTltMj' +
- '7FoJGOX3so9QcOfFzPre48aBg5rLD5pVrLXp2DYAqQlaGEasLE16p' +
- 'SiIwNL1Nff5OxjSXK17nTTp5Oax7e8FJ5CgIgT00hU34C/oYSYoGc' +
- 'bAmTJUFEG3zV19R+4oo11Cw1uwRqM3ig9J54RKrzZQQHKhfT/wFg/' +
- '8mNScD1pDVy6W57W2etx+symWo0Gp1CoRSJZAJBJZ1uUquVYjGXwd' +
- 'DojIuOyZ+48VVLb39rX3+VWiORSm1SroZPkVcWyTgFQvpudtmHtMK' +
- 'tjOIP2GXbBbRdEvY+najMo2OHzbzGoRa+w1uhCVW6e6rbjtgnb/We' +
- 'vOoJegWUXWL6Xhm7oH0iOWkbDnxcz7Faps5qvHWVEs07EgPRHCQrQ' +
- 'uTqMNkcIm4SbyDSEUnonbr2XRx5ZiabsENHojvAUyCFzJoDPnUe+D' +
- 'QAfMI2EVITQiQBRB1MtYa7z98JtQ/KzG4A/GpbYP+lj9dWPUB4OME' +
- 'Q5htZ98v1dAom6cXqF8hzDg4KBA6Ezv18pECLsmP/ZMjlthsMOrlc' +
- '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' +
- '7AD+gj3RCNLTg/3Ww8eGxlsiZo5WVOpUMwdPPWJoZZL6jl3wRWpND' +
- 'me0vS3c0BiIxhoGl1ydBwc+rudetJaBFI0HEfsQmTcxLPMD2cPApy' +
- '0NfPo88CkpJCohl4WYAmRdOJESXxfYU9+77qe2WnWcv79X8S/Zm2+' +
- 'Ss5vnUN8197eTnNOWkefPf7UqEbrPZ+dtZLk7VjpbP0lJqw0mhXEW' +
- 'nWYF8ygmDaWDAMd6+Giy+qRC4DKIC5Pkw3YE+piA+erR/uKnJGfd6' +
- 'NUv2k/He3oD0Rqu31jpsyunlg7ILKr9F257Q9G6vq7Lf/7m0MdXBw' +
- '8fbOwfWWpnHPi4nnuV1XenqICH70FknoSHvxUAv3IunrMQ+CwCmTM' +
- 'P/LllzZHyBPDJCeCnZNIRjRtRBxCRj6T2bgutOiX++qpu5q+3sv73' +
- 'rDcukrNic1595xzwwd/uzPxA3iZB7kZ2TjZr8xZhcGgtI3OgsNnsU' +
- 'S0PWHSJc+xGCHDsp9CuAexu6FBt+BcUhUaQ4Cgg9AGETVyPDi9fd/' +
- 'UeOxvyKiM13Fq70Kdn1/esxYtoHYt/9P292b//zeXffnPj998PnVt' +
- 'ySuBqx+FDwScsXH1g+eUPkgSHWqH58Je5B2AQb7Wr9vx4Dedy8iz6' +
- 'WRjKQxM7wCzW2H+foY4eXCvUjkg7SedPLFyi9JNtIeL70nng8+bSI' +
- '9PmO23piwG/7EfgI9SUdBpS7STrgog4QFL53vU3Td7+dt3PbinJw5' +
- 'fs/Vem57Lsjs9+q+78+vU9f87YNE3OrkvNaU049jnt5NxEDD8r35H' +
- '/mjA3n5OTxdzNMnSduflzjotdqBe7ONQyH1m4Mnj84YUUoVB0Y3eD' +
- 'SzHmzK9FCMCS5OqjK3lhY0pPz8+8/cCYTUm1qxhuHcukZI1e+WwNh' +
- 'QyeuXj3H39/8qu78Y8vX/jtV4c+/WKpPVfl4aNPWHS80/ILGWMFV5' +
- 'NB50zF5z2BpfaHD+6kQbwr11JjRNHVx5LunIU3Eq7nQ4B4u8OtBJU' +
- 'HuOWJdcxr/MQtkoeBT38I+KlY4NPmgQ9Tq1FIUiui9SMiL6L0bHRE' +
- 'ntoMyd1nf531xlkkzV+oHnRN3N4j+nPma+eRrEZydsMc7TvJOV1pu' +
- 'Y2Z+a6cfEleHiMnh/7m+3yhr3Hs1lp6abFCuRp/eInwZZw3SGPsjx' +
- '2dd4n1wyExYEcwFLpAYdLq8NiDwgA+yvynJJKDqn1s2iStMEor9OJ' +
- 'Sf0PjGkqYvHXv7NdfXv/9X898fHP0xtnj3989du+T6TuLuyKrDenA' +
- 'rnA0m83KH5Twg0lf+vLP/Z8z7Xop4KN3Cw78F0RTt7/ZFmwhaObGU' +
- 'ir9iZDOuysBPjMFLmsO8ypA4JMqSGIL2QA8fFCUL8safDozJI/eeF' +
- 'Ag/zYtb5ic3UzOaE7Pm0zN6USyahP/5gDHvjMtN5aVX5O7kZ+bS8v' +
- 'OKfuwQqVr6h+88hiSf6Ij7VF6o6uBwwDLop9a2JmLpsZKWt496XeN' +
- 'jswBJSd12qKHA0eHruYaVrN60ho8P2vy2BTsfVphiZS9zxqNrmRd2' +
- 'iSNXJk9//1fAcU/uTo6e/7wvVszX82OXLm76M6rBT765E1avTEpZX' +
- '1SNzq6FnzSVAiU53A5FZjxEhaLJtiPzy+tCMoE72KH+sPDgS1osbB' +
- 'Nt/DGgAIloNNAlgc+zKsPdl6YnB+7qiP6GtYc3pP4ZISnSuO3vn7T' +
- 'FSOpPQm3HHj4Zh/x7SoCaSngs5cDPqGcxDMhhkCi/1fhTTN5uy99u' +
- 'u4nmKT+C78plv4pLbeHnN04N8C+FUm8SAywT82pz8jzZW/U5Oaxc3' +
- 'LKN73JpGk8ocljU48vMAV/oeiqFnFMkqscTFIUrNBATdI4fLgRuz+' +
- 'adwXdBxSI9g7AXLuwZxblDywHrre+7l/NQtnq6iVmhVTKlHIKJQqu' +
- 'Iegdv/HVaguZ/vje+Ozlw5/dGLp6YvDaibFPLvZfOT5w4dqiO6+h0' +
- 'xZ+QTB9fdJGmFoBdo4sfHcZFxrQFfrecD1iuDFnQWJMGFOC3y8sEx' +
- 'wFZs6Bu8HPwnDQQuBjp2+j9xiaYBmtHloybDAmZXLDpneDr+FDBx4' +
- 'anjue8fXp0dj1rzZaw0S1d47SPsTsJ24WJ4CfKphf4pCxBPDnFj1M' +
- 'DNFBgV9G4hjJprlFr0BRJl/T2acoQ/LU7e+svV+/seNsanbrHOoTc' +
- 'ZvUnJb03NqMPEd2vjonn5ebR33tLVZhpVkV6e46e+Ox1wH+GJMisb' +
- 'DnLgcz3wr7LgoHrJcIf1lwaXLYswandkJXE6ZlQ/26Zfx2sA8cwPN' +
- '0/iQb9sflOq3RY6/x2XT2msYVr2OSpMnb98ZuXR2ZPbP/9pnhW6eb' +
- 'T0yM3Vi87bkG4KOtLSxRsQktsa+TvlP4L+rPo32+0DEGJWMXLkkCP' +
- 'szAg5aMZs5Hl8rFZuNcFPjY6N8yHj42rz7aOF0G+EmT+57OW+uF1d' +
- 'Clz9L1XpLKiwiBh+9FjF7imwD43LkhOtw5vDPngE+ZW8p8bnHzH5M' +
- 'qYIFPSwA/pYzE0CMQ+DIfyehtOPX4mbkGTdz8Jjrx+d7KM+TMRiSr' +
- 'AdA+LbcpPdeblWfMya/KzWfm5JVtfo/HkPvsnRN95x6dhnHNgg38h' +
- 'eF6sAUNsyc9DlA4gH0gB5JG78OfLerzo12x8He6fDcizL2z8mwMv7' +
- 'A6D51WG80coVBns6iNpnDnWuY1Q03f+XZ09sb+65eHPro+cWvJZsI' +
- 'aQjowdA/JjFJ9eeDH5/tlUBgmNdlgSiV0Jh3cZ3ngoyE+NBVbzrIJ' +
- '+eFcPPTfZYC/aB2WAf6Ls9Tys6juk7OIxoVUexChJxHSAcB/YwHw5' +
- '7IrYIDP+hH4iQfBXCIdZC79QkoZkaJJLI9blUihRjT6QkdXN0dmVR' +
- 'q7da/l4u2OU4u3zYF6zt6taTtEUbS+ttWaQpYT0wxpOf7M3JrsbFl' +
- 'uDi83l7rxDdquMo3E0hzef2LkypIjNx6XYBgWG1HBCjtoBxtgQTte' +
- 'Yf5MmHEXS3tsExttmCflXsAupIIm2AdbwE8ePkHW/T5cqOnb3wab2' +
- 'mpcHpFMpjGZzU6Xr755+gmP+1ot8NGO2qTADhbF8PtKamfB9hf2ym' +
- 'MZCztW4kvAdlHgQx8AjbHDOXTwUZ4Ef7Tm2CotA3zs8KGk50v8UcD' +
- 'HY/hPm1qPXCWonEi1ew74bkTvIb4umgM+L8H2BPBZDwGfDLfMrXK7' +
- 'EPhlasQ8B3ypl6T3eg8/qZT4g9c/7bx9v/7Mx76JGbhl+s6Dzos3R' +
- 'q59GRs7L7b3f1DmTcvTEFK1xDQtOVORliPMyKHlbqS+vUe0T2qoCj' +
- 'd5x450n70Fh2X+YkJzlS98Czp1KPOxrQDwy0UH0qChG9gWAJ+Cq6X' +
- 'AHcAPHB0HjsYZ4IIXMLKa1NwGW57a7JoDZ24E6urtHp9Cp3dHo65g' +
- 'xB2KDCyxrOHj0sqBD4gKrh66hjgafoE57SGKYXgN7rawBNiDDx0Ay' +
- 'H+0cQfn2aHtPhijy5nv5UGz5aOJ8dEKwC4b7IMGvIvO48DeeGg8B9' +
- '4/aMMQjsNH/4U3GNgZFos2GNF+BBhBwoaVsE8xPIb/tKl+8iJB5UA' +
- 'ULoTvQuQuROsivipcHvgpPwGf+hDwN5QSi5SJ/GlVXkTiJeg9nkPn' +
- 'nkSdO6/cHPruD63Xvo6euBU7kXimtJ76yDYw6Z0+6z300evbjS9vE' +
- 'BLTJEiGIC2TlZlVkZVdkpVdnJlVlJFdaO1cz9XG4bynpd7F5kaGuI' +
- 'A/LvAbhJ4Syhb4A8QGBOCPMSlbMloU9kGAPRwME63jBVlGXYdOOX0' +
- 'BezAwcev84dmr3nCtNxJtXTa58c/X45ppi/recIHaZfaEc98WDuOB' +
- 'Wx6ZTn/hcbGHg4+e+GKZUVcL4YWVBCU8MuEqHsN/2hQeOZOisiNyJ' +
- 'yKYA77GRdwkJCCPBD4tGfik8pSXion7FEhNILE8bpWXqPeaxk88iT' +
- 'oPXL4bPnap+5Pf1F/8LHz8in182tAz7hw75Tt4semjz+ovfJGdTyM' +
- 'Rd+S9XvpBcdXeSm2puIap8ghMEZmj0d584DGOulmtVnLzw6A6Gpz5' +
- 'mYcDPF+GOU9zhuTugyc7xg8c//rOxd/du/bb73qmJl2B0NPj4S+vR' +
- 'eP2uHCtuzz9xzcA4MscCN+JyJyI2kHIR4HPmQf+XPTmJ+Azk4GfUp' +
- 'FCriBuFyHVTsTgheuhE/Q+3YGZJ1TtA9e+tHSPAea33fwGuPojX/9' +
- 'l5P7vvAfPuyZOh45eNveMRadPDly8O7XE/JqnXOg61E8zkJ+0Bs9c' +
- 'vfbbB3f//nfX//jd7T/9+thnt4ItHU/6oI8L+DAa83QOdsX1IsvUf' +
- 'jABfOkc8IGHr3YS8gRzwOf+CPwf0+lggc/4CfgpxSnEMsI7ApK4Br' +
- 'EGydYwYvQlFjGv8gPgi/qnHnuFu05fk7jCTJll89t76HJb85V7nbP' +
- 'f11/4dPjeb9tvP5BG2qsCzZ0Xn6LhoGsT3s81eO7S7b/7zfXffzfz' +
- '+Y1T339y4Tdftc+sPYXRCoUnT8P1fEs2epKgcSBS5xzwnUi1nZDJJ' +
- 'fyKnUiYibAfBj79J+AjtBQioH05YROTxNYhZj9iDZMddWRXQyJDst' +
- 'xPlgQIej+3Z8k8tKtVz7mbjt5RsbOWLrIXl1YXlSjLqfo339jFVJg' +
- 'tI/HIqVue6fPR07fDJ2/6x4+OXHsaZ/jiWpUmb9y49ae/ufDgy6kb' +
- 'F48+uHXp9/eHP3pSYwBQ4cDH9XzLdOh8itqOSOY9fIOHLA+SikzEt' +
- '2SELC6ByCIQGAm2k9DkaewUEj1lQ3lKDotUrkaMXrI9QnbWp/paUq' +
- 'M9pEhPYg0URRAAf4PGW9bU9zOrN3bzXuzIKVWoaVcBd9++KhrdyuA' +
- '4KhX+6kCLs3us69R1sE/n2WvG7glAe/fkWaCeK0/d9F5cq9X0nW+P' +
- 'fn7n2h++O/fgi6nbH818fevsD19M372+VA6cxyUc+Lieb6kPXiTpX' +
- 'ImlTwTuOeB7///2zvwriiuL47+MidAmc45zzpyZH7InZuISt8QYR8' +
- 'clcV8hooCAoCAKcYsaiTskGgyNNIUxi4NxN7J1o2RTo0InOQKN4jm' +
- 'T/2du1Ze+PqoXuqq7oWnuOZ/Tp3j16tVGfevWfe/e59h5xLHjMAl4' +
- '6oadKYs3j5609ql/Lhr1zOxRT80i8X9q1H9GPTP36alrUjK3pm75K' +
- 'HXLPkfJAcf2o6k7Kv623zm/8uu/5pbog/CXFI/dsH371yGnFhqQw2' +
- 'e/X7a5dPaynJlzsubMy589J2/Gooz00o/31Jz7orGfAV9QcTLv+Je' +
- '7L9zcWe8+2tr+WaOY98Mel+fXb+60nu/4SWu7Xtl0TrvVoP143dl8' +
- 'yeWObzo+e4FXCIVD1LPWP70Mg/G0CIgwZcUx1eSoW5XIB1PxjmycP' +
- 'jI8S+RUEpNx5lpKxiZ9+nIS/DVFKTklY3Z/6thV7thxxLH9IJFauj' +
- '+1cE9KZsno+XlPv7bm6VfXpKzZmlqwL3VjmWPjwdT8Iyn55f/Y9sW' +
- 'SE+crrt+ubLw9JmfbX1ZseWtrefnVCCztVrLlnizTr8t9r/ioc2nm' +
- 'thmz106bvmry1GWTpy2fu7xg01FnZcNPgS18esmTX1G1te7yweb2Q' +
- '56OI60dVRYnyBASEJfnTrX7ct3NhirPxcqW71w/X/u88VxVUxyDoI' +
- 'GNbJksxYiN1UIEnPLAdS1YCJVak8ffcvQT8iBFeEjqjqwig4uSnoI' +
- 'vL4/OLiabXE+PnF6ckluasv9k6r5Kx+7jY7ZXOEqOOQoPOwoOOXIP' +
- 'OnIOpGaVpWbud2QdcKyn5SOpORXPl9Z84Lz6eWNf0uCTDb+ML91fq' +
- 'l0Mtbsn8o4/PR01LV4UOt13yq42lXx1fm7G5hnvZ0ydtXr6zLR352' +
- 'Tnf/S5sylkUuKyc9e2f3Ou7ELDgfMNhy80Hxd/zjChtrU9TNRbTcu' +
- 'vR89/5XRfqv7hsrPt8vHv6082egbhqKwKviksmu32oBkGuCS84KvV' +
- 'xioZzCI/Ktsmugh+0pPpPPv0+qKU5YUpS7aMTisau2nX1CNfPbfL9' +
- 'WzRyZT8E6PzjqfkVBCpG445so86sg87sg6l5hxz5J8Yt+fLvNNNVS' +
- '331NZcrfdr3PdC7YuE3eXuqPP/WXezndSePopdHv3PssstO79t2vT' +
- 'Ft0XVZzdW1qXvPbowr2RzhZ1uX9pRHd4sN/V3Sp31FoQ4UXtD1/na' +
- 'gQRf0+cubztx9fuKa+dONFx0tgT5uIsHVgUfEROmDHUs43D44C2Ah' +
- 'MmQ4vCCz5jSHWjB8g9jmV46HKbHO2J3Ey2bxogiQpZKTKl71K+DaF' +
- 'xDQsJSfqVtxr6KZ9NKRy/ZOipty/jtn7g896vd9z67fuuTi22bzjQ' +
- 'v/vzy9EP1r+498/cPa8cUOccUVU365GzJ2dYaj+WkBDXujlPN3tNt' +
- '7XU36c/2Mz+0a63eY/V/VDd5ae2Bazd2fNVcUte841v3ngutey/c/' +
- 'PjKj3uuerae+25LzZm9py/QgeGVofnfHX1eIE8HXhkor9PtQ2/dDS' +
- '/vl3ZX16ZXrmkxf2II8UVR9Vr/L5kExCAntYgQq4KPpJSc1wjyqAo' +
- '+67BqPEcj+GP75x/GtJWakscyaEY1ZFfgw0OOHTpgJNagathWFfxo' +
- 'XENCglN+5Ye8yvq3d5a/vTf4nKEk75VNd8su/1J2yWaSMVLa6mYvo' +
- 'cuvwem2jjM/dhz79o/PzutPBIlA+ZVfPqz7eec3bfvqb+z9b9v+73' +
- '4+coW4dejCrYPnb5zy3Ktubq9u0puqcXvpNeFy66pONjwtE6davLr' +
- 'Uk6S3eg09USVFf8sYVmVH/3Ih/hjazlY9vbiTRvA1f9pJyL4pX72a' +
- 'dzqGgq924CI7E6ff14IJvmlHdKjIwoEcTUjBETSxp/TeCrHBL/jEl' +
- 'z/ov9rNvlWnWvSvAA3ufXeflU7icMp9r1q3DO+7PO1BrXT6fKiFnS' +
- '82fAJjCP4AzpwhxKrgs/Yiw5iqrursh1pMBd+UMYmMc0uCz0lWmVC' +
- 'CLwixBab+gNVchlnoMuzD2lZxywzsAI+khUHYS1CqGn45finu423s' +
- 'YcOHzzHRpJY81dRYZS6SQC2NleDTxwWZ6OzSiVDw8WLCYWOeXLyeN' +
- 'H+CTfHhC7bRhdp9TxsUi84Vur84Eqqb7lQ3Wp5Bb0hIWAs5Emrcd2' +
- '3MVDg42BB8TFiJGWYhj5wlGN4S0mSMb4ebPWiiY1OzppTF/E4x1Ud' +
- 'TmCKB9kJtYpA/p85GnzK+AnhDVEbCVfQ18+SYqBbozxeEAXE23jrV' +
- '/Gtt6/1BU6cod+TSHcvDMtna8ML4cDBf5yhf1rHCRuCVFix18KDBq' +
- 'VAHzMNsOmyeBwcgIgzZ77lQfPhChJCpPIRZiAXBHpJaQRCsUuu5Xx' +
- '06VMpCO8PZcSEMR0TwBcEqpPZi3gvDERF8QbBKddPtkWycj+Rzj+T' +
- 'iJPL1EcEXBKs4G24NOws/aE+i7abif6iJq5nhMcKlE/d/QwRfEKxC' +
- 'D3VVFFOQRDhEfIA6FiXRiPe/a+9gkEBAjx41XnPxHnNY0/Kr6X1a2' +
- 'xeh0K6WRHmpscrUZvhmA9c+yauASArPfWfjrQQZkBMUG4K/8SPfqt' +
- 'xHRCLPCC8IccXZeJse7ZqWuzaUp08c/NH3/Vrg5aDaouievqCroqJ' +
- 'R/TfhvUA8Pz3fMuQXbfja7UmDjUhbhCxp/nlseZWaTi0QS6MoBUFI' +
- 'PhLZ9I0fod7IQ4JVwSeFJ3jsemBu/KAgD4OMcheSHsmKMBIxPr6wj' +
- 'EA8w72jf8EZX1j38Kbj9536cVc7uJ1BNiZAQdgsST3LPmfRgf4jzJ' +
- 'ZfAZx1h0poFU+AxdmMNX++YniK0CZVQPDs0N9NQYgcfyYcTH0iic5' +
- 'GCBB5TRfzu9BwPSFesz43GX6Nhb7Yjb50HEPRPW0j0hbqjRQKcOOo' +
- '2WzK639HegS10JQSh9PgqKlvOPcC6iDpgXiBhPjxxnOPLfD84/EvP' +
- 'J7w0uPJ43qnT+ydOe3RnFkP31vQs3hJz/KVvtUf+NLWdaev787Y0J' +
- '2R270+j+hal9udmd+VXdC1fqMOrVqbpddJN2rqZHZ/kNmdkdO9ztg' +
- 'kq6Arp7Arp6grZ0tX3jaiM7e4c+O2zvzSzo0l+u+mHX0UbDf4UF/e' +
- 'TOwkHhTuerB5V2fhbvp9UFDambu1a0NhV0ZOFx3YytW+ZcuJHvpdv' +
- 'sq3co1vzVofjqHvkNZ3p2V0r8nophNZleaj+kuX+xYv7Xn//Z558x' +
- '4umNszf97D+XPpfB8uXmycb3p32nr9jNbl6MdPC+nrqdC3bKV+Qd5' +
- '7r2fBgocLF/UsXUp77EnP8FGdrE1d2Zu7sgq6M7K7V6/1LVrSM3f2' +
- 'w1nvPHpn2qOZ03vffVu/ngvm9yxa5KP2V6XpV+aDLP03jQ4vi7bqy' +
- 'iygM9IvReGuzuK9ncX7Hmz9+EHx3gdFH+nnTheEVtFFo7OmHem3wL' +
- 'jm1EiacV50UitW+ej4Fy7Wz4v2NY/OaL6+vHBhz7IV+mXR72OGfjr' +
- 'rcqmFLrp9dFPol6ASQr+/G7rWZusHtpZuKB1VXlf2ps6cLQ/yS/8w' +
- 'bsFv28r0o9q2/0HRng46yMLd+i9Bq+hO5RV3Umsr0zvpTOfM6pkx9' +
- 'dGUcb0TX9b/u+h/zNr/ZDDC/8/b6LSFZY6sNaT5yFrA2g7RxqQkkQ' +
- 's+2fP4cOA61I6ovRA/Bnw0BMEGLs+TfgpMjsZTpKmr+mz7OJj34f+' +
- 'xbadH1vyeHFPCYc3ovSXNh4ZHKPhcJ0wuTUGIFaL2QpzoPxzL8M8r' +
- 'A6sG5xjC/Hvb6LRVDW/S5/L631XBR9JLqy4duIYwnRY2ER++ED9E8' +
- 'IUkJoaCTyKMzllMIwiDH2nqJ077k/7kZMWw8DGkB28BTFyiGTpP9a' +
- 'kCugPQjYu1VIKcluLDF+KHCL6QxMRQ8HkaEcxgy+XqMHtagGjzgml' +
- 'ZM/p51c2RplgtFB++ED9E8IcLkIVo3LxklwYqiSXXAR9DhFvB6aGi' +
- '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' +
- 'QRgJ/B+oERdN');
- SetArrayLength(ATPA, Length(TP));
- for I := 0 to High(ATPA) do
- begin
- ATPA[i] := LoadTextTPA(TP[i], UpChars, H);
- for B := 0 to High(ATPA[i]) do
- ATPA[i][B].y := ATPA[i][B].y + i*(H);
- end;
- if Length(Colours) = 4 then
- begin
- SetArrayLength(Colors, Length(TP));
- for i := 0 to High(Colors) do
- Colors[i] := Colours[1];
- end else
- Colors := Colours;
- DrawATPABitmapEx(bmp, ATPA, Colors);
- Canvas := TCANVAS.Create;
- Canvas.Handle := SmartGetDebugDC;
- DrawBitmap(bmp, Canvas, Placement.x, Placement.y);
- FreeBitmap(bmp);
- end;
- procedure PrintOnSmart2(TP: TStringArray; Placement: TPoint; Colours: TIntegerArray);
- var
- x, y, bmp, I, B, H: Integer;
- ATPA: T2DPointArray;
- Canvas: TCanvas;
- Colors: TIntegerArray;
- begin
- GetClientDimensions(x, y);
- bmp := BitmapFromString(x, y, '');
- SetArrayLength(ATPA, Length(TP));
- for I := 0 to High(ATPA) do
- begin
- ATPA[i] := LoadTextTPA(TP[i], UpChars, H);
- for B := 0 to High(ATPA[i]) do
- ATPA[i][B].y := ATPA[i][B].y + i*(H);
- end;
- if Length(Colours) = 4 then
- begin
- SetArrayLength(Colors, Length(TP));
- for i := 0 to High(Colors) do
- Colors[i] := Colours[0];
- end else
- Colors := Colours;
- DrawATPABitmapEx(bmp, ATPA, Colors);
- SMART_ClearCanvas;
- Canvas := TCANVAS.Create;
- Canvas.Handle := SmartGetDebugDC;
- DrawBitmap(bmp, Canvas, Placement.x, Placement.y);
- FreeBitmap(bmp);
- end;
- procedure paintReport;
- var Exp: int64;
- begin
- Exp := GetXPBarTotal - StartExperience;
- //PrintOnSmart([''], Point(4, 265), [clRed, clBlack, 1107712, Colour]); Sin's Paint Co-orindates..
- PrintOnSmart([''], Point(6, 310), [clRed, clBlack, 1107712, Colour]);
- Smart_DrawTextMulti(False, Shaddow, [MsToTime(GetTimeRunning, Time_Short)], Point(127, 357), Font, Colour);
- Smart_DrawTextMulti(False, Shaddow, ['N/A'], Point(127, 373), Font, Colour);
- Smart_DrawTextMulti(False, Shaddow, [ToStr(Exp)], Point(127, 387), Font, Colour);
- Smart_DrawTextMulti(False, Shaddow, [ToStr(Round2((Exp * 3600) / (GetTimeRunning / 1000),2))], Point(127, 404), Font, Colour);
- Smart_DrawTextMulti(False, Shaddow, ['N/A'], Point(127, 420), Font, Colour);
- Smart_DrawTextMulti(False, Shaddow, [SStatus], Point(127, 433), Font, Colour);
- Smart_DrawTextMulti(False, Shaddow, [Version], Point(127, 455), VersionChars, Colour);
- end;
- procedure printReport;
- var Exp: integer;
- begin
- Exp := GetXPBarTotal - StartExperience;
- ClearDebug;
- writeln('[--------------------------------------------]');
- writeln('[' +padr('',17) + '~AZK~ ' + Version + padr('',17) + ']');
- writeln('[' + padr('',16) + ' ~ By GGzz' + padr('',18) + ']');
- writeln('[--------------------------------------------]');
- writeln('[ Running for: ' + Padr(MsToTime(GetTimeRunning, Time_Short), 27) + ']');
- writeln('[ Experience: ' + Padr(ToStr(Exp),28) + ']');
- writeln('[ Exp/hour: ' + Padr(ToStr(Round2((Exp * 3600) / (GetTimeRunning / 1000),2)), 30) + ']');
- writeln('[--------------------------------------------]');
- end;
- Function AtHartwin: Boolean;
- var
- TPA: TPointArray;
- ATPA, ATPA2: T2DPointArray;
- CTS, L, I: Integer;
- B: TBox;
- begin
- CTS:= GetColorToleranceSpeed;
- ColorToleranceSpeed(2);
- SetColorSpeed2Modifiers(0.02, 1.48);
- if FindColorsTolerance(TPA, 1358059, MSX1, MSY1, MSX2, MSY2, 7) then
- if Length(TPA) < 1 then
- begin
- ColorToleranceSpeed(CTS);
- SetColorSpeed2Modifiers(0.02, 0.02);
- exit;
- end;
- ColorToleranceSpeed(CTS);
- SetColorSpeed2Modifiers(0.02, 0.02);
- ATPA:= TPAToATPAEx(TPA, 10, 10);
- if Length(ATPA) < 1 then
- exit;
- L := High(ATPA);
- SetArrayLength(ATPA2, L+1);
- For I:= 0 To High(ATPA) do
- begin
- B:= GetATPABounds(ATPA);
- With B do
- begin
- ColorToleranceSpeed(2);
- SetColorSpeed2Modifiers(0.00, 0.23);
- Result:= FindColorsTolerance(ATPA2[I], 5066065, B.X1 - 10, B.Y1 - 10, B.X2 + 10, B.Y2 + 10, 5);
- ColorToleranceSpeed(CTS);
- SetColorSpeed2Modifiers(0.02, 0.02);
- end;
- end;
- ColorToleranceSpeed(CTS);
- SetColorSpeed2Modifiers(0.02, 0.02);
- end;
- //By sir eska eau
- Function UnderAttack: Boolean;
- Var
- Time, x, y: integer;
- begin
- if InFight then
- begin
- MarkTime(Time);
- repeat
- Wait(50+Random(50));
- if(FindDTM(WaitFight_Shield, x, y, MSCX - 60, MSCY - 70, MSCX + 60, MSCY + 70)) or (FindDTM(WaitFight_Damage, x, y, MSCX - 60, MSCY - 70, MSCX + 60, MSCY + 70)) then
- begin
- Result:= True;
- Break;
- end;
- until(TimeFromMark(Time) > 2500);
- end;
- end;
- function AttackZombies: Boolean;
- var
- CTS, I, L: Integer;
- TPA: TPointArray;
- ATPA: T2DPointArray;
- P: TPoint;
- begin
- Result := False;
- LProc:= 'AttackZombies';
- if AtHartwin then
- exit;
- if (not LoggedIn) or (FindDead) or (InFight) then exit;
- CTS:= GetColorToleranceSpeed;
- ColorToleranceSpeed(2);
- SetColorSpeed2Modifiers(0.10, 0.45);
- FindColorsTolerance(TPA, 7168593, MSX1, MSY1, MSX2, MSY2, 17);
- ColorToleranceSpeed(2);
- SetColorSpeed2Modifiers(0.2, 0.2);
- if (Length(TPA) < 1) then
- Exit;
- ATPA:= TPAToATPAEx(TPA, 50, 50);
- if (Length(ATPA) < 1) then
- Exit;
- SortATPAFromFirstPoint(ATPA, Point(MSCX, MSCY));
- L:= High(ATPA);
- For I:= 0 To L do
- begin
- P:= MiddleTPA(ATPA[I]);
- MMouse(P.X, P.Y, 0, 0);
- if (WaitUptextMulti(['ttack', 'zombie', 'rmoured'], 600)) then
- if ((Not IsFightAt(P.X, P.Y)) and (Not UnderAttack)) then
- begin
- ClickMouse2(MOUSE_LEFT);
- break;
- end;
- end;
- Result:= InFight;
- end;
- Function SummonPoints: Integer;
- var
- ColourString: String;
- begin
- LProc:= 'SummonPoints';
- Result:= GetMMLevels('summon', ColourString);
- if Debugs then
- writeln('Summoning Points: ' + ToStr(Result));
- end;
- Function UsingFamiliar: Boolean;
- var
- CTS: Integer;
- TPA: TPointArray;
- begin
- LProc:= 'UsingFamiliar';
- CTS:= GetColorToleranceSpeed;
- ColorToleranceSpeed(2);
- SetColorSpeed2Modifiers(0.21, 0.80);
- Result:= FindColorsSpiralTolerance(707, 143, TPA, 7975758, 691, 133, 720, 157, 24);
- if Debugs then
- writeln('Using Familiar: ' + ToStr(Result));
- SetColorSpeed2Modifiers(0.2, 0.2);
- ColorToleranceSpeed(CTS);
- end;
- Function InteractFamiliar(Option: TStringArray): Boolean; //By Flight.. Modified..
- begin
- if (not LoggedIn) then exit;
- if UsingFamiliar then
- begin
- if (Option[0] = '') then
- begin
- MouseBox(695,140,740,155,1);
- Result := True;
- end else
- begin
- MouseBox(695,140,740,155, MOUSE_RIGHT);
- wait(500);
- if ChooseOptionMulti(Option) then
- Result := True
- else
- srl_Warn('InteractFamiliar', 'Incorrect option', warn_AllVersions);
- end;
- end else
- srl_Warn('InteractFamiliar', 'No familiar present!', warn_AllVersions);
- Wait(100 + Random(50));
- end;
- Function SummoningRenew(PouchToSummon: integer): Boolean;
- var
- Pouch, X, Y, tries, Summoning: Integer;
- begin
- LProc:= 'SummoningRenew';
- Case PouchToSummon of
- 0:
- exit;
- 1:
- Pouch := DTMFromString('m1gAAAHic42JgYDjIxMBwjAlC70PCIP4RKD4JxJyMDAxcQMwLxSA+GxIGiXEAcWFJPENxeSKDv78tGOcXxzIUlMQxFJUlMGSkhYDFyqqSGbiAdhODGYnECAAAECwT5g=='); //Bunyip
- 2:
- Pouch := DTMFromString('mbQAAAHicY2VgYDjEBMH7gPgAEJ8H4gpGBoYSIC4D4hogrgTilopUhqbyFIbiVF8wZmBgYuACkuiYEQsGAwBb6Qt+'); //Unicorn
- end;
- Summoning := DTMFromString('mWAAAAHicY2FgYHBigmBXIPYEYn1GBgYrILaE4vz8Ega5a3cZZC/dBKpmYkgBkuxImBENgwAAgewHaA=='); //Potion to drink.
- //UniScroll := DTMFromString('mwQAAAHic42RgYDjIxMCwjwlCHwbiY0B8FIh3Q8WPALEeIwODFhCrQ2kYWxuI9aG4vjiRoaM8iiEicj4YR0YtBGOQGEhuWm8TAxfQPkKYkQgMBwBcExUb');
- Gametab(Tab_Inv);
- if(FindDTM(Pouch, x, y, MIX1, MIY1, MIX2, MIY2) and FindDTM(Summoning, x, y, MIX1, MIY1, MIX2, MIY2)) then
- if(SummonPoints < 20) then
- begin
- writeln('Need to Refill Summoning Points.');
- if(FindDTM(Summoning, X, Y, MIX1, MIY1, MIX2, MIY2)) then
- begin
- MMouse(X, Y + 5, 0, 0);
- if(WaitUptextMulti(['ummoning', 'potion'], 500)) then
- begin
- ClickMouse2(False);
- ChooseOptionMulti(['rink', 'Drink', 'rink Summoning', 'Drink Summoning']);
- wait(2000);
- end;
- end;
- end;
- if (SummonPoints < 20) then
- begin
- FreeDTM(Pouch);
- FreeDTM(Summoning);
- exit;
- end;
- tries := 0;
- if(FindDtm(Pouch, x, y, MIX1, MIY1, MIX2, MIY2) and (SummonPoints >= 20)) then
- Repeat
- if(not Loggedin) then
- LoginPlayer;
- if UsingFamiliar then
- break;
- FindNormalRandoms;
- MMouse(x, y, 5, 5);
- wait(500);
- ClickMouse2(false);
- wait(500);
- ChooseOption('Summon');
- if(FindBlackChatMessage('follower')) then
- break;
- tries:= tries + 1;
- if(tries > 10) then
- begin
- FreeDTM(Pouch);
- FreeDTM(Summoning);
- exit;
- end;
- Until(UsingFamiliar = true);
- wait(1500);
- Result:= UsingFamiliar;
- FreeDTM(Pouch);
- FreeDTM(Summoning);
- end;
- Function HPLevel: Integer;
- var
- ColourString: String;
- begin
- LProc:= 'HPLevel';
- Result:= GetMMLevels('HP', ColourString);
- if debugs then
- writeln('HP: ' + ToStr(Result));
- end;
- Function MousePotions(DTM: Integer; Uptext: TStringArray; Area: TBox; WithDraw, Drink: Boolean): Boolean;
- var
- X, Y, T, Tries, Count, NOC: Integer;
- TPA: TPointArray;
- ATPA: T2DPointArray;
- begin
- if (Not Withdraw) then
- begin
- If (FindDTMs(DTM, TPA, Area.X1, Area.Y1, Area.X2, Area.Y2)) then
- begin
- ATPA:= TPAToATPAEx(TPA, 24, 35);
- SortATPASize(ATPA, False);
- if (Length(ATPA) < 1) then
- exit;
- MiddleTPAEx(ATPA[0], X, Y);
- MMouse(X, Y, 0, 0);
- if (WaitUptextMulti(Uptext, 600)) then
- begin
- if (Drink) then
- ClickMouse2(MOUSE_LEFT);
- Result:= True;
- Wait(1000);
- end;
- end;
- end else
- begin
- Count:= ItemAmount('inv', 'dtm', DTM, []);
- If (NOC <> 0) then
- If FindDTM(DTM, X, Y, Area.X1, Area.Y1, Area.X2, Area.Y2) then
- While ((Not FindDTM(DTM, X, Y, MIX1, MIY1, MIX2, MIY2)) and (Tries < 5)) do
- begin
- FindDTM(DTM, X, Y, Area.X1, Area.Y1, Area.X2, Area.Y2);
- MMouse(X, Y, 0, 0);
- if Debugs then
- writeln(GetUptext);
- If (WaitUptextMulti(Uptext, 500)) then
- begin
- ClickMouse2(MOUSE_RIGHT);
- if WaitOptionMulti(['w-X', 'draw-X'], 600) then
- begin
- Wait(1000);
- if (Not BankScreen) then
- exit;
- T:= GetSystemTime + 10000;
- while (T >= GetSystemTime) and (not (InRange(CountColor(0, 250, 396, 307, 410), 155, 165))) do
- Wait(50);
- TypeSend(ToStr(NOC - Count));
- break;
- end;
- end;
- Inc(Tries);
- if Tries > 5 then
- Writeln('Cannot Withdraw Combat Potions');
- end;
- Tries:= 0; WaitFindDTM(X, Y, DTM, 2500);
- Result:= (ItemAmount('inv', 'dtm', DTM, []) = NOC);
- end;
- end;
- Function HasPotion(Potion: String; Drink: Boolean): Boolean;
- var
- DTM: Integer;
- UpText: TStringArray;
- begin
- LProc:= 'HasPotion';
- Uptext:= [Potion];
- if (GetCurrentTab <> Tab_Inv) then
- GameTab(Tab_Inv);
- Case LowerCase(Potion) of
- 'none', '0', 'nothing':
- exit;
- 'ovl', 'overload':
- begin
- DTM := DTMFromString('mlwAAAHicY2dgYPBigmB3IHYG4kAgDgDiYCBmYmRg4AViHijmBmJGIGYHsbm4gLqZ4DQyngYk+XFgRjwYCgCMngOo');
- UpText:= ['load', 'Over', 'Overload'];
- end;
- 'def', 'defence':
- begin
- DTM := DTMFromString('mbQAAAHicY2VgYBBkZGAQAGIeIBYHYgkgng0UXwrFSxgg/K1TzBn2z7UCspjgeBqQ5EfDjFgwGAAA/SEHfg==');
- UpText:= ['uper defence', 'defence', 'uper def', 'Super defence'];
- end;
- 'atk', 'attack':
- begin
- DTM := DTMFromString('mbQAAAHicY2VgYMhkhOBcIE4C4gIgngUUX4qE5wCxhdU2BkubfUAWExxPA5L8aJgRCwYDAHP8CHk=');
- UpText:= ['uper attack', 'attack', 'uper att', 'Super attack'];
- end;
- 'str', 'strength', 'es', 'extrstr':
- begin
- DTM := DTMFromString('mrAAAAHic42BgYGBlgAAQzQvEXEDMCRVjAWImqDgfELNBxbmQcERkDFQVAi+ct4Bh88YtDBvWbWSYBhQRwYMZCWAYAADUbgi9');
- UpText:= ['uper strength', 'strength', 'uper str', 'Super strength', 'me str'];
- end;
- 'ed', 'extrdef':
- begin
- DTM := DTMFromString('mbQAAAHicY2VgYEgE4gQgTgXiGCh/DhAvA+KFQLwIiCcA8ZUjskCSieHIVmmGu2fkGKKi4hjygCJcaJgRCwYDABivC70=');
- Uptext:= ['eme def', 'me def', 'Extreme defence'];
- end;
- 'ea', 'extratk':
- begin
- DTM := DTMFromString('mbQAAAHicY2VgYDABYmMgNgdiayDWA+K5QLwUiJcB8Swou3DFaoaSteuBLCY4ngYk+dEwIxYMBgBabgil');
- Uptext:= ['me att', 'eme att', 'Extreme attack'];
- end;
- end;
- Result:= MousePotions(DTM, Uptext, MIBox, False, Drink);
- FreeDTM(DTM);
- end;
- Procedure PotSkills;
- begin
- LProc:= 'PotSkills';
- Sk.ModAtk:= GetSkillInfo(Skill_Attack, True);
- Sk.ModStr:= GetSkillInfo(Skill_Strength, True);
- Sk.ModDef:= GetSkillInfo(Skill_Defence, True);
- end;
- Procedure InitialSkills;
- begin
- LProc:= 'InitialSkills';
- Sk.Atk:= GetSkillLevel(Skill_Attack);
- Sk.Str:= GetSkillLevel(Skill_Strength);
- Sk.Def:= GetSkillLevel(Skill_Defence);
- end;
- function RPDist(TPA: TPointArray; MaxDist: Integer): TPoint; //By MormonMan
- var
- MP, P: TPoint;
- begin
- if not LoggedIn then Exit;
- P := Point(-1, -1);
- MP := MiddleTPA(TPA);
- while (Distance(MP.x, MP.y, P.x, P.y) > MaxDist) do
- P := TPA[Random(Length(TPA) - 1)];
- Result := P;
- end;
- Function FindHDTM: Boolean;
- var
- DTM, X, Y, Dist: Integer;
- TPA, NPCs: TPointArray;
- begin
- NPCs:= GetMiniMapDots('NPC');
- SortTPAByY(NPCs, True);
- Dist:= Distance(NPCs[0].X, NPCs[0].Y, MMCX, MMCY);
- if (Dist > 20) then
- begin
- MMouse(NPCs[0].X, NPCs[0].Y, 0, 0);
- wait(100);
- ClickMouse2(MOUSE_LEFT);
- if (Not IsMoving) then
- wait(1000);
- while isMoving do
- wait(500);
- end;
- DTM := DTMFromString('mQwAAAHicY2ZgYNBlZGDwAWIuIJ4F5E8E4klAnJuTwXBvozzDucWyDFxAPgwzImEgAAAOBwbl');
- Result:= FindDTMs(DTM, TPA, MSX1, MSY1, MSX2, MSY2);
- if Result then
- begin
- if Debugs then
- DebugTPA(TPA, '');
- MiddleTPAEx(TPA, X, Y);
- MMouse(X, Y, 0, 0);
- end;
- FreeDTM(DTM);
- end;
- Procedure TalkHartwin;
- var
- NPCs, Cols: TPointArray;
- HP: TPoint;
- B: TBox;
- Found: Boolean;
- Color: TIntegerArray;
- I, X, Y, Dist, Tries: Integer;
- begin
- LProc:= 'TalkHartwin';
- Tries:= 0;
- Found:= False;
- if (Not AtHartwin) then
- exit;
- FindHDTM;
- NPCs:= GetMMDotsOnMS('NPC');
- SortTPAByY(NPCs, True);
- HP:= RPDist(NPCs, 20);
- HP:= MMToMS(HP);
- B:= IntToBox(HP.X - 20, HP.Y - 20, HP.X + 20, HP.Y + 20);
- Color:= [5271929, 5931912, 4020572, 5927541, 6981257];
- For I:= 0 To High(Color) do
- FindColorsSpiralTolerance(HP.X, HP.Y, Cols, Color[I], B.X1, B.Y1, B.X2, B.Y2, 10);
- if (Length(Cols) > 0) then
- begin
- MiddleTPAEx(Cols, HP.X, HP.Y);
- MMouse(HP.X,HP.Y, 0, 0);
- DebugTPA(Cols, '');
- Found:= True;
- end else
- if FindHDTM then
- Found:= True;
- if Found then
- if (WaitUptextMulti(['alk-to Hart', 'Hartwin', 'artwin', 'o Hartwin', 'win', 'to Har'], 600)) then
- begin
- ClickMouse2(MOUSE_LEFT);
- MakeCompass('N');
- Repeat
- repeat
- ClickToContinue;
- until(ClickToContinue = False);
- wait(500);
- FindNPCChatText('es', ClickLeft);
- wait(2000);
- Inc(Tries);
- Until(FoundSymbol(1, X, Y, Dist) or FoundSymbol(2, X, Y, Dist) or (Tries > 7));
- end;
- end;
- Function DrinkPotion(Potion: string): Boolean;
- begin
- LProc:= 'DrinkPotion';
- UptextF:= [Potion];
- Case LowerCase(Potion) of
- 'none', '0', 'nothing':
- exit;
- 'asd', 'ss', 'superset', 'super set':
- begin
- PotSkills;
- begin
- if (HasPotion('atk', False)) then
- if (Sk.ModAtk < (Sk.Atk + WTD)) then
- begin
- HasPotion('atk', True);
- wait(1000);
- end;
- if (HasPotion('str', False)) then
- if (Sk.ModStr < (Sk.Str + WTD)) then
- begin
- HasPotion('str', True);
- wait(1000);
- end;
- if (HasPotion('def', False)) then
- if (Sk.ModDef < (Sk.Def + WTD)) then
- begin
- HasPotion('def', True);
- wait(1000);
- end;
- end;
- wait(1000);
- PotSkills;
- Result:= ((Sk.ModAtk > (Sk.Atk + WTD)) and (Sk.ModStr > (Sk.Str + WTD)) and (Sk.ModDef > (Sk.Def + WTD)));
- end;
- 'atk str', 'as', 'atkstr', 'aspure':
- begin
- PotSkills;
- begin
- if (HasPotion('atk', False)) then
- if (Sk.ModAtk < (Sk.Atk + WTD)) then
- begin
- HasPotion('atk', True);
- wait(1000);
- end;
- if (HasPotion('str', False)) then
- if (Sk.ModStr < (Sk.Str + WTD)) then
- begin
- HasPotion('str', True);
- wait(1000);
- end;
- end;
- wait(1000);
- PotSkills;
- Result:= ((Sk.ModAtk > (Sk.Atk + WTD)) and (Sk.ModStr > (Sk.Str + WTD)));
- end;
- 'str def', 'sd', 'strdef', 'sdpure':
- begin
- PotSkills;
- begin
- if (HasPotion('str', False)) then
- if (Sk.ModStr < (Sk.Str + WTD)) then
- begin
- HasPotion('str', True);
- wait(1000);
- end;
- if (HasPotion('def', False)) then
- if (Sk.ModDef < (Sk.Def + WTD)) then
- begin
- HasPotion('def', True);
- wait(1000);
- end;
- end;
- wait(1000);
- PotSkills;
- Result:= ((Sk.ModStr > (Sk.Str + WTD)) and (Sk.ModDef > (Sk.Def + WTD)));
- end;
- 'atk def', 'ad', 'atkdef', 'adpure':
- begin
- PotSkills;
- begin
- if (HasPotion('atk', False)) then
- if (Sk.ModAtk < (Sk.Atk + WTD)) then
- begin
- HasPotion('atk', True);
- wait(1000);
- end;
- if (HasPotion('def', False)) then
- if (Sk.ModDef < (Sk.Def + WTD)) then
- begin
- HasPotion('def', True);
- wait(1000);
- end;
- end;
- wait(1000);
- PotSkills;
- Result:= ((Sk.ModAtk > (Sk.Atk + WTD)) and (Sk.ModDef > (Sk.Def + WTD)));
- end;
- 'atk', 'attack':
- if (HasPotion(Potion, False)) then
- begin
- PotSkills;
- if (Sk.ModAtk < (Sk.Atk + WTD)) then
- begin
- HasPotion(Potion, True);
- wait(2000);
- PotSkills;
- Result:= (Sk.ModAtk > (Sk.Atk + WTD));
- end;
- end;
- 'str', 'strength':
- if (HasPotion(Potion, False)) then
- begin
- PotSkills;
- if (Sk.ModStr < (Sk.Str + WTD)) then
- begin
- HasPotion(Potion, True);
- wait(2000);
- PotSkills;
- Result:= (Sk.ModStr > (Sk.Str + WTD));
- end;
- end;
- 'def', 'defence':
- if (HasPotion(Potion, False)) then
- begin
- PotSkills;
- if (Sk.ModDef < (Sk.Def + WTD)) then
- begin
- HasPotion(Potion, True);
- wait(2000);
- PotSkills;
- Result:= (Sk.ModDef > (Sk.Def + WTD));
- end;
- end;
- 'ovl', 'overload':
- if (HPLevel > 600) then
- if (HasPotion(Potion, False)) then
- begin
- PotSkills;
- if ((Sk.ModAtk < (Sk.Atk + WTD)) or (Sk.ModStr < (Sk.Str + WTD)) or (Sk.ModDef < (Sk.Def + WTD))) then
- begin
- HasPotion(Potion, True);
- wait(2000);
- PotSkills;
- Result:= ((Sk.ModAtk + Sk.ModDef + Sk.ModStr) > ((Sk.Atk + Sk.Def + Sk.Str) + WTD));
- end;
- end;
- end;
- end;
- Function FindLadder: Boolean;
- var
- Dist: Integer;
- begin
- LProc:= 'FindLadder';
- if AtHartwin then
- exit;
- Result:= FindObjectMM([LadderColour], Dist, 10, 10, LTol, False, [0.58, 4.00]);
- if debugs then
- writeln('FindLadder: ' + ToStr(Result));
- end;
- Function DownTheHall: Boolean; Forward;
- Function PrayAltar: Boolean;
- var
- CTS: Integer;
- begin
- LProc:= 'PrayAltar';
- if AtHartwin then
- exit;
- CTS := GetColorToleranceSpeed;
- ColorToleranceSpeed(2);
- SetColorSpeed2Modifiers(0.11, 0.38);
- Result:= FindObjectFX([2960958], ['ray-at', 'haos altar', 'altar'], MSX1, MSY1, MSX2, MSY2, 20, 20, 11, True);
- if (Not Result) then
- if (Not AutoColourAltar) then
- if (Not FindLadder) then
- DownTheHall;
- if Debugs then
- writeln('PrayAltar: ' + ToStr(Result));
- ColorToleranceSpeed(CTS);
- SetColorSpeed2Modifiers(0.2, 0.2);
- end;
- Function PrayerLevel: Integer;
- var
- ColourString: String;
- begin
- LProc:= 'PrayerLevel';
- Result:= GetMMLevels('Prayer', ColourString);
- if debugs then
- writeln('Prayer: ' + ToStr(Result));
- end;
- Function IsPrayerOn: Boolean;
- var
- TPA: TPointArray;
- CTS: Integer;
- begin
- LProc:= 'IsPrayerOn';
- if (PrayerLevel < 2) then
- Result:= False
- else
- begin
- CTS:= GetColorToleranceSpeed;
- ColorToleranceSpeed(2);
- SetToleranceSpeed2Modifiers(0.11, 1.02);
- Result:= FindColorsSpiralTolerance(723, 70, TPA, 8767378, 708, 53, 737, 85, 27);
- SetToleranceSpeed2Modifiers(0.2, 0.2);
- ColorToleranceSpeed(CTS);
- end;
- if Debugs then
- writeln('Prayer On: ' + ToStr(Result));
- end;
- Function OutOfPrayer: Boolean;
- var
- TPA: TPointArray;
- CTS: Integer;
- begin
- LProc:= 'OutOfPrayer';
- CTS:= GetColorToleranceSpeed;
- ColorToleranceSpeed(2);
- if (PrayerLevel = 0) then
- Result:= True
- else
- Result:= Not(FindColorsSpiralTolerance(723, 70, TPA, 6236988, 706, 55, 739, 81, 26) or IsPrayerOn);
- if Debugs then
- writeln('Out of Prayer: ' + ToStr(Result));
- ColorToleranceSpeed(CTS);
- end;
- Procedure TurnPrayerOff;
- begin
- LProc:= 'TurnPrayerOff';
- if (GetCurrentTab <> Tab_Inv) then
- GameTab(Tab_Inv);
- wait(1000);
- begin
- if (Not IsPrayerOn) then
- exit;
- repeat
- if OutOfPrayer Then
- break;
- if PrayerLevel < 3 then
- break;
- MouseBox(706, 55, 739, 87, MOUSE_LEFT);
- wait(1500);
- Until(Not IsPrayerOn);
- end;
- MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
- end;
- Procedure TurnPrayerOn(QuickPrayer: Boolean);
- begin
- LProc:= 'TurnPrayerOn';
- if (GetCurrentTab <> Tab_Inv) then
- GameTab(Tab_Inv);
- wait(1000);
- if IsPrayerOn then
- exit;
- if (QuickPrayer = True) then
- repeat
- if OutOfPrayer Then
- break;
- if PrayerLevel < 3 then
- break;
- MouseBox(706, 55, 739, 87, 1);
- wait(1500);
- Until(IsPrayerOn);
- if (QuickPrayer) then
- MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
- end;
- Function WalkToLadder: Boolean;
- var
- Dist: Integer;
- begin
- LProc:= 'WalkToLadder';
- if AtHartwin then
- exit;
- FindObjectMM([LadderColour], Dist, 10, 10, LTol, True, [0.58, 4.00]);
- if ((Dist >= 25) or (PrayerLevel <= WTP)) then
- begin
- FindObjectMM([LadderColour], Dist, 10, 10, LTol, True, [0.58, 4.00]);
- MMouse(Random(MSCX), Random(MSCY), 5, 5);
- wait(500);
- while isMoving do
- wait(50);
- wait(1000);
- Result:= (Dist < 15);
- end;
- end;
- Function UpLadder: Boolean;
- var
- Dist, X, Y, tries, CTS: Integer;
- Ladder: TPoint;
- begin
- LProc:= 'UpLadder';
- if AtHartwin then
- exit;
- tries:= 0;
- CTS:= GetColorToleranceSpeed;
- Repeat
- FindObjectMM([LadderColour], Dist, 10, 10, LTol, False, [0.58, 4.00]);
- if ((FoundSymbol(1, X, Y, Dist) = False) or (FoundSymbol(2, X, Y, Dist) = False)) then
- begin
- if ((Dist <= 23) and (PrayerLevel <= WTP)) then
- begin
- Ladder:= MMToMS(Point(X, Y));
- SetColorSpeed2Modifiers(0.09, 0.26); //EDITED!! Ladder.X-50
- if (Not FindObjectFX([2509141], ['adder', 'up Lad', 'limb-up'], MSX1, MSY1, Ladder.X + 50, Ladder.Y + 50, 10, 10, 5, True)) then
- begin
- SetColorSpeed2Modifiers(0.2, 0.2);
- ColorToleranceSpeed(CTS);
- if (Not AutoColourLadder) then
- if (Not FindLadder) then
- DownTheHall;
- end;
- SetColorSpeed2Modifiers(0.2, 0.2);
- if DidRedClick then
- begin
- wait(2000);
- if Debugs then
- writeln('UpLadder: True');
- end;
- end else
- if (Dist > 23) then
- WalkToLadder;
- Inc(Tries);
- end;
- if (tries > 5) then
- break;
- Until(FoundSymbol(1, X, Y, Dist) or FoundSymbol(2, X, Y, Dist) or (Tries > 5));
- SetColorSpeed2Modifiers(0.2, 0.2);
- ColorToleranceSpeed(CTS);
- Result:= (FoundSymbol(1, X, Y, Dist) or FoundSymbol(2, X, Y, Dist) or (FindLadder = False));
- if Debugs then
- writeln('UpLadder: ' + ToStr(Result));
- wait(1000);
- end;
- Function FindTrapDoor: Boolean;
- var
- I, X, Y, TrapDoorDTM: Integer;
- Found: Extended;
- Colors: TIntegerArray;
- TPA: TPointArray;
- ATPA: T2DPointArray;
- begin
- if AtHartwin then
- exit;
- Colors:= [6579305, 6382182, 6447719];
- For I:= 0 To High(Colors) do
- FindColorsSpiralTolerance(MSCX, MSCY, TPA, Colors[I], MSCX - 50, MSCY - 50, MSCX + 50, MSCY + 50, 10);
- if (Length(TPA) < 1) then
- exit;
- ATPA:= TPAToATPAEx(TPA, 30, 30);
- if (Length(ATPA) < 1) then
- exit;
- if debugs then
- DebugTPA(ATPA[0], '');
- MiddleTPAEx(ATPA[0], X, Y);
- MMouse(X, Y, 0, 0);
- Result := WaitUptextMulti(['rapdoor', 'uny', 'unyip'], 600);
- if Result then
- begin
- ClickMouse2(MOUSE_RIGHT);
- WaitOption('rapdoor', 600);
- end else
- begin
- TrapDoorDTM := DTMFromString('mQwAAAHicY2ZgYJBmZGCQA2IJIJ4D5B+F4gBfX4ZNy2cxrF8yg4ELyIdhRiQMBAAaZwdn');
- if FindDTMRotatedAlternating(TrapDoorDTM, X, Y, MSX1, MSY1, MSX2, MSY2, 0, 359, 1, Found) then
- begin
- MMouse(X, Y, 0, 0);
- Result := WaitUptextMulti(['rapdoor', 'uny', 'unyip'], 600);
- ClickMouse2(MOUSE_RIGHT);
- WaitOption('rapdoor', 600);
- end;
- FreeDTM(TrapDoorDTM);
- end;
- end;
- Function DownLadder: Boolean;
- var
- X, Y, Dist, tries, CTS: Integer;
- begin
- LProc:= 'DownLadder';
- if AtHartwin then
- exit;
- MakeCompass('S');
- CTS:= GetColorToleranceSpeed;
- wait(1000);
- tries:= 0;
- repeat
- ColorToleranceSpeed(2);
- if FindObjectFx([4473927, 6118754, 6382182, 6579304], ['rapdoor', 'door'], MSX1, MSY1, MSX2, MSY2, 10, 10, 5, True) then
- begin
- ColorToleranceSpeed(CTS);
- MMouse(X, Y, 0, 0);
- wait(500);
- ClickMouse2(True);
- if Debugs then
- writeln('DownLadder: True');
- if(DidRedClick) then
- break;
- end else
- begin
- ColorToleranceSpeed(CTS);
- if (FoundSymbol(1, X, Y, Dist) = False) or (FoundSymbol(2, X, Y, Dist) = False) or (FindLadder = False) then
- FindTrapDoor;
- end;
- ColorToleranceSpeed(CTS);
- Inc(Tries);
- if (Tries > 4) then
- break;
- until((FoundSymbol(1, X, Y, Dist) = False) or (FoundSymbol(2, X, Y, Dist) = False) or (FindLadder = True) or (tries > 10));
- MakeCompass('W');
- Result:= ((FoundSymbol(1, X, Y, Dist) = False) or (FoundSymbol(2, X, Y, Dist) = False) or (FindLadder = True));
- if Debugs then
- writeln('DownLadder: ' + ToStr(Result));
- end;
- Procedure PickUpItems(ItemList: TStringArray);
- var
- Items, TPA: TPointArray;
- ATPA: T2DPointArray;
- Item: TPoint;
- ItemArray: Array of ItemPickup;
- I, CTS: Integer;
- begin
- LProc:= 'PickUpItems';
- SetLength(ItemArray, Length(ItemCheckList) + 1);
- For I:= 0 To High(ItemCheckList) do
- Case lowercase(ItemCheckList[I]) of
- 'noted':
- begin
- ItemArray[I].Color := 8767731; //Noted Items.
- ItemArray[I].Speed := [0.64, 1.34];
- ItemArray[I].Tolerance := 10;
- end;
- 'bones', 'bone':
- begin
- ItemArray[I].Color := 13423589; //Bones Items.
- ItemArray[I].Speed := [0.39, 2.16];
- ItemArray[I].Tolerance := 11;
- end;
- 'bluecharm', 'blue charm', 'bluecharms':
- begin
- ItemArray[I].Color := 10725730; //BlueCharm Items.
- ItemArray[I].Speed := [0.11, 0.44];
- ItemArray[I].Tolerance := 22;
- end;
- 'coins', 'gold', 'gp':
- begin
- ItemArray[I].Color := 4641005; //Coins Items.
- ItemArray[I].Speed := [0.29, 3.33];
- ItemArray[I].Tolerance := 5;
- end;
- end;
- CTS:= GetColorToleranceSpeed;
- Items:= GetMMDotsOnMS('item');
- if (Length(Items) > 0) then
- begin
- Item:= MMToMS(Items[0]);
- if ((Item.X <> 0) AND (Item.Y <> 0) AND (InvFull = False)) then
- begin
- For I:= 0 To High(ItemArray) - 1 do
- begin
- ColorToleranceSpeed(2);
- SetColorSpeed2Modifiers(ItemArray[I].Speed[0], ItemArray[I].Speed[1]);
- FindColorsTolerance(TPA, ItemArray[I].Color, MSX1, MSY1, MSX2, MSY2, ItemArray[I].Tolerance);
- ATPA:= TPAToATPAEx(TPA, 10, 10);
- ColorToleranceSpeed(CTS);
- SetColorSpeed2Modifiers(0.02, 0.02);
- if (Length(ATPA) < 1) then
- exit;
- Item.x:= MSCX; Item.y:= MSCY;
- SortATPAFromFirstPoint(ATPA, Item);
- MiddleTPAEx(ATPA[0], Item.X, Item.Y);
- MMouse(Item.X, Item.Y, 0, 0);
- wait(200);
- if (isUptextMultiCustom(ItemList) or IsUptextMultiCustom(['ake', 'nteract', 'ttack'])) then
- begin
- ClickMouse2(False);
- WaitOptionMulti(ItemList, 300);
- wait(200);
- while isMoving do
- wait(1);
- end;
- end;
- end;
- ColorToleranceSpeed(CTS);
- SetColorSpeed2Modifiers(0.02, 0.02);
- end;
- end;
- Procedure CheckList;
- begin
- FindNormalRandoms;
- If (Not LoggedIn) then
- LoginPlayer;
- end;
- Procedure SaveUsNRun;
- var
- X, Y, Dist, Tries: Integer;
- begin
- Tries:= 0;
- LProc:= 'RunAway';
- if ((PrayerLevel <= WTP) or OutOfPrayer) then
- begin
- UpLadder;
- while((FoundSymbol(1, X, Y, Dist) = False) or (FoundSymbol(2, X, Y, Dist) = False) or (Tries < 10)) do
- begin
- UpLadder;
- Inc(Tries);
- wait(100);
- if (tries >= 10) then
- break;
- writeln('RunAway: SymbolFinding');
- end;
- Tries:= 0;
- if (FindObjectMM([LadderColour], Dist, 10, 10, LTol, False, [0.58, 4.00]) = False) then
- begin
- repeat
- PrayAltar;
- while IsMoving do
- wait(100);
- Inc(Tries);
- if (tries > 5) then
- break;
- Until((PrayerLevel > WTP) or (Tries > 5));
- end;
- end;
- end;
- Procedure SOS;
- var
- X, Y, Dist: Integer;
- begin
- CheckList;
- if ((SaveMe = True) And (NoSS = True)) then
- begin
- LProc:= 'SOS';
- repeat
- if (HPLevel > WTE) then
- SaveMe:= False;
- SaveUsNRun;
- MakeCompass('W');
- writeln('~SOS~ Out of food AND not using SoulSplit.. Running Away..');
- SaveUsNRun;
- until(FoundSymbol(1, X, Y, Dist) or FoundSymbol(2, X, Y, Dist) or (FindLadder = False) or (SaveMe = False));
- repeat
- Logout;
- until(Not LoggedIn);
- writeln('~SOS~ Successfully Ran Away..');
- TerminateScript;
- end;
- end;
- Procedure RefillPrayer;
- var
- X, Y, Dist, Tries: Integer;
- begin
- Tries:= 0;
- LProc:= 'RefillPrayer';
- if AtHartwin then
- exit;
- if ((PrayerLevel <= WTP) or OutOfPrayer) then
- begin
- UpLadder;
- while((FoundSymbol(1, X, Y, Dist) = False) or (FoundSymbol(2, X, Y, Dist) = False) or (Tries < 10)) do
- begin
- Inc(Tries);
- wait(100);
- if (tries >= 10) then
- break;
- if Debugs then
- writeln('RefillPrayer: SymbolFinding');
- end;
- Tries:= 0;
- if (FindObjectMM([LadderColour], Dist, 10, 10, LTol, True, [0.58, 4.00]) = False) then
- begin
- repeat
- PrayAltar;
- while IsMoving do
- wait(100);
- Inc(Tries);
- if (tries > 5) then
- break;
- Until((PrayerLevel > WTP) or (Tries > 5));
- end;
- if(FoundSymbol(1, X, Y, Dist) or FoundSymbol(2, X, Y, Dist) or (FindLadder = False) or (PrayerLevel > WTP)) then
- DownLadder;
- if (IsPrayerOn = False) then
- TurnPrayerOn(QP);
- end;
- end;
- Function ReturnFoodInfo(Food: String): FoodStruct;
- begin
- ResetEverything;
- Case LowerCase(Food) of
- 'shark':
- begin
- Result.Item:= DTMFromString('mlwAAAHicY2dgYChkYmAoB+IqIK4B4gYoOxOIZRkZGKSBWB6IlYBYG4h1gFgNiEMdDRimVacy9JcmMHQXxTG4m2kwxHmYMvDx8TFwAc3FhRnxYCgAAFFKC0Y=');
- Result.Uptext:= ['Shark', 'hark', 'ark'];
- end;
- 'raw shark', 'summoning shark', 'bunyip shark':
- begin
- Result.Item:= DTMFromString('mWAAAAHicY2FgYDABYj0gtgZiOyCWYGRgkAFiKSBWAOLGmmqGxNhYhpL8fIa8zEwGLqAaZMyIhkEAAEz2BqM=');
- Result.Uptext:= ['Raw shark', 'hark', 'ark', 'aw sha'];
- end;
- 'lob', 'lobs', 'lobster', 'lobby', 'lobbies':
- begin
- Result.Item:= DTMFromString('mlwAAAHicY2dgYJjPxMCwGIoXAvFMIF4AxEuAuJ8RgicB8XQg7oLiDiDm4+NjKLcRZJjtJ86wJVqaYV2EFMP8AHGGbTHSDFxAc3FhRjwYCgD3pg8b');
- Result.Uptext:= ['Lob', 'obster', 'bster'];
- end;
- 'raw lobster', 'raw lob', 'summoning lob',
- 'summoning lobster', 'bunyip lobster', 'bunyip lob':
- begin
- Result.Item:= DTMFromString('mQwAAAHicY2ZgYEgG4jQgjgfibCAuBOI8IE40lwXjYkdlBnYgH4YZkTAQAADQ1ATP');
- Result.Uptext:= ['Raw lobster', 'aw lob', 'lobster', 'obste'];
- end;
- 'tuna':
- begin
- Result.Item:= DTMFromString('mggAAAHicY2NgYPBkYmDwA+JgKO0OxVsYGRg2QvFWIN4JZadGhjPEBAUwRPj5MOQmxDHw8fGB+VxAs7BhRhwYAgDSsAuu');
- Result.Uptext:= ['Tuna', 'una'];
- end;
- 'sardine':
- begin
- Result.Item:= DTMFromString('mWAAAAHicY2FgYDjOxMBwBIhPAvEZIFZmZGBQBWJ5IJYD4urcLIYFfd0MqZHhDNnxsQxcQD3ImBENgwAADhkJKQ==');
- Result.Uptext:= ['ardine', 'Sardine', 'dine'];
- end;
- 'rocktail', 'rock', 'tail':
- begin
- Result.Item:= DTMFromString('mWAAAAHicY2FgYHBkZGBwB2J7ILYF4mMMEHweiI8AcUdpGZBkAmMdITYGdiALGTOiYRAAAGyEBgc=');
- Result.Uptext:= ['ocktail', 'tail', 'ockta', 'Rocktail'];
- end;
- 'cake':
- begin
- Result.Item:= DTMFromString('mrAAAAHic42BgYChhYmAoAOIqKC4G4gYmiHg1ELswQrAjELsCsR0QuwGxFxTv376d4czhwwwTu7sZ5s+YwbB+xQoGNTlWhsIoAYYYYV4GLqAd+DAjAQwDAJ8PEe0=');
- Result.Uptext:= ['ake', 'Cake'];
- end;
- 'bass':
- begin
- Result.Item:= DTMFromString('mggAAAHicY2NgYJjFxMAwD4pnAvF8IF4MxD6MEOwBxO5A7ArFfHx8DGed5BjKvZ0ZNltJMcw3FgdjLqBZ2DAjDgwBALd+CvI=');
- Result.Uptext:= ['ass', 'Bass'];
- end;
- 'sword', 'swordy', 'swordfish', 'swords',
- 'swordies', 'sword fish':
- begin
- Result.Item:= DTMFromString('mbQAAAHicY2VgYMhjYmDIAOIsIC4G4kIg9mZkYPAHYi8g9gViTyDuTJzIUBXWyFAUWAmmc32LGbiA+tExIxYMBgDAPgpw');
- Result.Uptext:= ['Swordfis', 'wordfis', 'ordfis', 'Swordfish'];
- end;
- 'monk', 'monkfish', 'monk fish', 'monks':
- begin
- Result.Item:= DTMFromString('mlwAAAHicY2dgYDjIxMCwB4h3AfFOID4AxEeheBYjBE8H4nlAPA2IZwDxHCAWEuJgiApwZQjxcmDI9nRncDTVZtBWVWRwtDBi4AKaiwsz4sFQAAANlg6I');
- Result.Uptext:= ['Monkfi', 'onkfish', 'onkfis', 'Monkfish'];
- end;
- 'cave', 'cavefish', 'cave fish':
- begin
- Result.Item:= DTMFromString('mlwAAAHicY2dgYJjCxMAwGYinAfEMKLsfiCcAMTcjAwMHELNCaRYozQvEpX4RDAuz8xhmpWcyrC4qZTDQ02NYlJPPcKChmYELaC4uzIgHQwEALJsOBw==');
- Result.Uptext:= ['avefi', 'Cavefish', 'avefish', 'avefish'];
- end;
- 'pizza', 'meat pizza':
- begin
- Result.Item:= DTMFromString('m1gAAAHic42JgYChhYmCoA+JKIC4F4kImiFg+VLwJiKuBuIeRgaEPiDuAuBOK+4F4EhBPBeJeIG4F4uVLJRnKJQXBGMYG0f1xokDbmOCYC0gSgxmJxAgAAEAWEdw=');
- Result.Uptext:= ['Pizza', 'eatpiz'];
- end;
- 'turtle', 'sea', 'sea turtle', 'squirtle':
- begin
- Result.Item:= DTMFromString('mlwAAAHicY2dgYJjCxMAwEYhnAPEsIJ4KxHOAuB+IpzMCxYB4BhBPhuKFQDwfiH09nBj8vVzA2NXRhsHD2Y4h15+fIdGNj4ELaC4uzIgHQwEAvecOTA==');
- Result.Uptext:= ['turtle', 'Seaturtle', 'Sea-turtle', 'urtle', 'ea-tur', 'eaturle'];
- end;
- 'manta', 'ray', 'manta ray', 'mantaray':
- begin
- Result.Item:= DTMFromString('mggAAAHicY2NgYMhlYmAoBOIcIM4E4mIgzgDi3YwMDDuBeBsQ7wPivVB+hLMhg5eFJkOUixEYg9jJ3uYMXECzsGFGHBgCAAfwC+4=');
- Result.Uptext:= ['manta', 'Manta', 'antaray', 'MantaRay', 'Manta-ray', 'ntara'];
- end;
- end;
- end;
- Procedure HealPlayer(Food: TStringArray);
- var
- I, X, Y, Scrolls: Integer;
- TPA: TPointArray;
- FS: FoodStruct;
- begin
- LProc:= 'HealPlayer';
- if (HPLevel <= WTE) then
- begin
- if (GetCurrentTab <> Tab_Inv) then
- GameTab(Tab_Inv);
- wait(1000);
- For I:= 0 To High(Food) do
- begin
- FS:= ReturnFoodInfo(Food[I]);
- if (GetCurrentTab <> Tab_Inv) then
- GameTab(Tab_Inv);
- wait(500);
- SetLength(TPA, 200);
- Case LowerCase(Food[I]) of
- 'raw shark', 'summoning shark', 'bunyip shark',
- 'raw lobster', 'raw lob', 'summoning lob',
- 'summoning lobster', 'bunyip lobster', 'bunyip lob':
- begin
- Scrolls := DTMFromString('mbQAAAHicY2VgYJjGxMAwC4jnAfFcKC5iZGAoBOIcIC4G4log9vE2ZggJiWKIiVvMkJCWzuDmMZeBC6gfHTNiwWAAABHPCxQ=');
- If (FindDTM(Scrolls, X, Y, MIX1, MIY1, MIX2, MIY2) and FindDTM(FS.Item, X, Y, MIX1, MIY1, MIX2, MIY2)) then
- repeat
- if SummoningRenew(WhichFamiliar) then
- begin
- if InteractFamiliar(['ast', 'Cast', 'allow Wh', 'Whole', 'hole', 'ole', 'allow', 'wall']) then
- begin
- SummoningRenew(WhichFamiliar);
- FindDTM(FS.Item, X, Y, MIX1, MIY1, MIX2, MIY2);
- MMouse(X, Y, 0, 0);
- if WaitUptextMulti(FS.Uptext, 500) then
- begin
- ClickMouse2(MOUSE_LEFT);
- Wait(500);
- FreeDTM(Scrolls);
- FreeDTM(FS.Item);
- Exit;
- end;
- end;
- end else
- break;
- if ((Not FindDTM(FS.Item, X, Y, MIX1, MIY1, MIX2, MIY2)) or (Not FindDTM(Scrolls, X, Y, MIX1, MIY1, MIX2, MIY2))) then
- begin
- MMouse(660, 188, 10, 10);
- ClickMouse2(MOUSE_LEFT);
- Break;
- end;
- Until((HPLevel > WTE) or (FindDTMs(FS.Item, TPA, MIX1, MIY1, MIX2, MIY2) = False) or (FindDTM(FS.Item, X, Y, MIX1, MIY1, MIX2, MIY2) = False));
- FreeDTM(Scrolls);
- end;
- else
- try
- if FindDTM(FS.Item, X, Y, MIX1, MIY1, MIX2, MIY2) then
- repeat
- FindDTM(FS.Item, X, Y, MIX1, MIY1, MIX2, MIY2);
- FindDTMs(FS.Item, TPA, MIX1, MIY1, MIX2, MIY2);
- MMouse(X, Y, 5, 5);
- WaitUptextMulti(['at', 'eat', 'Eat'], 500);
- ClickMouse2(true);
- wait(1000);
- Until((HPLevel > WTE) or (FindDTMs(FS.Item, TPA, MIX1, MIY1, MIX2, MIY2) = False) or (FindDTM(FS.Item, X, Y, MIX1, MIY1, MIX2, MIY2) = False));
- except
- SaveMe:= True;
- end;
- end;
- if (GetCurrentTab <> Tab_Inv) then
- GameTab(Tab_Inv);
- try
- if((HPLevel <= WTE) and (Not FindDTM(FS.Item, X, Y, MIX1, MIY1, MIX2, MIY2)) and (QP = False)) then
- begin
- writeln('~HealPlayer~ HPLevel: ' + ToStr(HPLevel));
- end else
- if (HPLevel < 400) then
- begin
- writeln('~EMERGENCY~ HPLevel: ' + ToStr(HPLevel) + ' Is Too Low');
- SaveMe:= True;
- end;
- FreeDTM(FS.Item);
- except
- SaveMe:= True;
- end;
- end;
- end;
- end;
- Procedure FightZombies;
- begin
- LProc:= 'FightZombies';
- if AtHartwin then
- exit;
- GameTab(Tab_Inv);
- while (InFight) do
- begin
- wait(50);
- if PickItems then
- PickUpItems(Players[CurrentPlayer].Strings);
- RefillPrayer;
- HealPlayer(Food);
- if ((IsPrayerOn = False) and (PrayerLevel > WTP)) then
- TurnPrayerOn(QP);
- end;
- if (not InFight) then
- begin
- if PickItems then
- PickUpItems(Players[CurrentPlayer].Strings);
- RefillPrayer;
- HealPlayer(Food);
- if ((IsPrayerOn = False) and (PrayerLevel > WTP)) then
- TurnPrayerOn(QP);
- AttackZombies;
- end;
- end;
- procedure RunAwayEx(dir: variant; RunFar: Boolean; Action, WaitTime: Integer);
- var
- Rad, T: Integer;
- Deg: extended;
- begin
- if (not LoggedIn) then exit;
- if RunFar then
- Rad := 63
- else
- Rad := 30;
- Deg := variantToDirection(dir);
- if (Action < 3) then
- begin
- //SetRun(True);
- MFNF(Trunc(Rad * Sin(Radians(FixD(Rs_GetCompassAngleDegrees + Deg))) + MMCX + Random(5)),
- Trunc(-Rad * Cos(Radians(FixD(Rs_GetCompassAngleDegrees + Deg))) + MMCY + Random(5)), 1, 1);
- FFlag(0);
- Wait(500 + Random(1500));
- t := GetSystemTime;
- while ((GetSystemTime - t) < WaitTime) and (LoggedIn) do
- if (Random(5) = 0) then
- IdleTime(2000, 500, 1.0)
- else
- Wait((WaitTime - (GetSystemTime - t)) div 5);
- end;
- if (Action = 1) or (Action = 3) then
- begin
- MFNF(Trunc(Rad * Sin(Radians(FixD(Rs_GetCompassAngleDegrees + (Deg + 180)))) + MMCX - Random(5)),
- Trunc(-Rad * Cos(Radians(FixD(Rs_GetCompassAngleDegrees + (Deg + 180)))) + MMCY - Random(5)), 1, 1);
- FFlag(0);
- Wait(500 + Random(1500));
- end;
- //SetRun(False);
- end;
- Function DownTheHall: Boolean;
- var
- X, Y, Dist: Integer;
- begin
- LProc:= 'DownTheHall';
- if (FoundSymbol(1, X, Y, Dist) or FoundSymbol(2, X, Y, Dist) or AtHartwin or FindLadder) then
- exit
- else
- begin
- ClickNorth(SRL_ANGLE_HIGH);
- RunAwayEx('E', True, 2, 5000);
- RunAwayEx('S', True, 2, 5000);
- Wait(1000);
- MakeCompass('W');
- end;
- Result:= FoundSymbol(1, X, Y, Dist) or FoundSymbol(2, X, Y, Dist) or AtHartwin or FindLadder;
- SOS;
- end;
- Procedure MainLoop;
- var
- X, Y, Dist: Integer;
- begin
- SOS;
- TalkHartwin;
- SOS;
- FightZombies;
- if (Not FindLadder) then
- DownTheHall;
- RefillPrayer;
- if Paint then
- paintReport;
- printReport;
- SOS;
- if((IsPrayerOn = False) and (PrayerLevel > WTP)) then
- TurnPrayerOn(QP);
- FightZombies;
- SOS;
- HealPlayer(Food);
- if (Not FindLadder) then
- DownTheHall;
- FightZombies;
- if Paint then
- paintReport;
- printReport;
- SOS;
- if(FoundSymbol(1, X, Y, Dist) and (PrayerLevel > WTP)) then
- DownLadder;
- SOS;
- FightZombies;
- if (Not FindLadder) then
- DownTheHall;
- if ((TimeFromMark(TimeToDrink) > 60000) or (TimeFromMark(TimeToDrink) < 1)) then
- begin
- DrinkPotion(Potion);
- TimeToDrink:= 0;
- MarkTime(TimeToDrink);
- end;
- if Paint then
- paintReport;
- printReport;
- SummoningRenew(WhichFamiliar);
- end;
- begin
- LoadInfo;
- if (Permanent = False) then
- begin
- SafeInitForm;
- SafeShowFormModal;
- end;
- InitializeVariables;
- Smart_Server := 72;
- Smart_Members := True;
- Smart_Signed := True;
- Smart_SuperDetail := False;
- SetupSRL;
- DeclarePlayers;
- LoginPlayer;
- cleardebug;
- SetAngle(SRL_ANGLE_HIGH);
- AddOnTerminate('LastRun');
- SStatus:= 'Running';
- StartExperience:= 0;
- RCTS:= GetColorToleranceSpeed;
- ToggleXPBar(True);
- StartExperience:= GetXPBarTotal;
- SmartSetDebug(Paint);
- Smart_ClearCanvas;
- MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
- InitialSkills;
- PotSkills;
- DrinkPotion(Potion);
- HealPlayer(Food);
- LoadDTMs;
- AddOnTerminate('FreeLoadedDTMs');
- repeat
- MainLoop;
- if ((Not LoggedIn) and (Not SaveMe)) then
- LoginPlayer;
- until(false);
- end.
Advertisement
Add Comment
Please, Sign In to add comment