{ This file is part of the Mufasa Macro Library (MML) Copyright (c) 2009 by Raymond van Venetiƫ and Merlijn Wajer MML is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. MML is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with MML. If not, see . See the file COPYING, included in this distribution, for details about the copyright. Other.inc for the Mufasa Macro Library } procedure psWait(t: Integer); {$ifdef MSWINDOWS} begin Sleep(t); end; {$else} var EndTime : DWord; begin if t > 50 then begin; EndTime := GetTickCount + t; while (CurrThread.PSScript.Exec.Status = isRunning) and (GetTickCount < EndTime) do Sleep(16); end else begin sleep(t); end; end; {$endif} procedure SaveScreenshot(FileName: string); var w,h : integer; bmp: TMufasaBitmap; begin; CurrThread.Client.MWindow.GetDimensions(w,h); bmp := TMufasaBitmap.Create; bmp.CopyClientToBitmap(CurrThread.Client.MWindow,True,0,0,w-1,h-1); bmp.SaveToFile(FileName); bmp.Free; end; function CreateForm : TForm; begin; result := TForm.Create(nil); end; function CreateButton(Owner : TComponent) : TButton; begin Result := TButton.Create(Owner); end; function MinE(a, b: Extended): Extended; begin; result := min(a,b); end; function IntToBox(x1,y1,x2,y2 : integer) : TBox; begin; result.x1 := x1; result.y1 := y1; result.x2 := x2; result.y2 := y2; end; function Capitalize(str : string) : string; var i , l : integer; cap : boolean; begin; result := str; l := length(str); cap := true; for i := 1 to l do if cap and (str[i] in ['a'..'z'] + ['A'..'Z']) then begin; result[i] := UpperCase(str[i])[1]; cap := false; end else if not (str[i] in ['a'..'z'] + ['A'..'Z']) then cap := true; end; function Distance(x1, y1, x2, y2: Integer): Integer; begin; Result := Round(Sqrt(Sqr(x2-x1) + Sqr(y2-y1))); end; procedure DisplayDebugImgWindow(w,h : integer); begin; CurrThread.DebugImg.DispSize^ := Classes.Point(w,h); CurrThread.Synchronize( CurrThread.DebugImg.ShowForm); end; procedure DrawBitmapDebugImg(bmp : integer); begin; CurrThread.DebugImg.ToDrawBitmap^ := CurrThread.Client.MBitmaps.Bmp[bmp]; CurrThread.Synchronize(CurrThread.DebugImg.DrawBitmap); end; function GetDebugBitmap : integer; begin; result := CurrThread.Client.MBitmaps.CreateBMP(0,0); CurrThread.DebugImg.GetDebugBitmap^ := CurrThread.Client.MBitmaps.Bmp[result]; CurrThread.Synchronize(CurrThread.DebugImg.GetBitmap); end; procedure TerminateScript; begin; CurrThread.PSScript.Stop; end; function GetTimeRunning: LongWord; begin; result := GetTickCount - CurrThread.StartTime; end; procedure ConvertTime(Time : integer; var h,m,s : integer); var x : integer; begin; x := time; h := x div(1000 * 60 * 60); x := x mod (1000 * 60 * 60); m := x div (1000 * 60); x := x mod (1000 * 60); s := x div (1000); end; procedure HakunaMatata; begin; OpenWebPage('http://www.youtube.com/v/ejEVczA8PLU&hl=en&fs=1&autoplay=1'); end;