PostHow to make own rotation bot. (Simple way) [EVERY PATCH\SERVER]

Posts 1–4 of 4 · Page 1 of 1
How to make own rotation bot. (Simple way) [EVERY PATCH\SERVER]


Step 0.
Make custom icons like:
(Size must be 64x64 and u need to make .png icons (NOT .ico !!!)
And after u make ur .png icons u need to convert it to .BLP (search how to convert png in blp with google )

Step 1.

Then rename ur icons. How? Go to wowhead. (or something else if it had icon name)

Now do that: https://i.imgur.com/GnfPL8c.png

U get name like ability_bullrush (spell_rush OR ability_mage_firestarter when u do something for druid kek, ITS OK dont worry about that).

And after u done u get ur ability_bullrush.blp (and alot other icons) now drop it to wow/interface/icons (icons not exist by default u need to make new folder.)

At this moment, download any rotation addon wich show icons (not bittensspellflash xd). I like hekili so i install it.

Now In-Game part:
  • Setup ur addon, place addon gui where u want.
  • In addon make show only 1 icon.
  • Ofc. spells like starfall, warrior jump and like this. Not supported. (But supported only if can cast throught /cast [@player] Death and Decay or /cast [@target] Death and Decay (this works for dk, but only from 7.0.1 to 8.3)

p.s Ye sure u can make click with ahk for aoe spells but u need to hold cursor over enemy everytime xD

Step 2.

Download autohotkey. (Ahk)
Create empty .ahk script.

Step 3.

Now do "PixelGetColor". Example:

Code:
PixelGetColor, color, 983, 824, RGB
If (color = 0xE97FFF)
{
Send, {c down}
sleep 10
Send, {c up}
}
What is that:

  1. Read: https://www.autohotkey.com/docs/comm...elGetColor.htm
  2. PixelGetColor searching for special pixel on screen.
  3. 983, 824 window (activewindow) coordinates where he search that pixel.
  4. If (color = 0xHEXvalue). -- if color found then send keydown w8 10 msec send key up.
  5. u can get colors here https://www.colorhexa.com or just with other ahk script.





Okay now we had PixelGetColor part, how to enable it and add other things.


Simple way:


Code:
End::
loop
{
PixelGetColor, color, 983, 824, RGB
If (color = 0xE97FFF)
{
Send, {c down}
sleep 10
Send, {c up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0x00A2E7)
{
Send, {1 down}
sleep 10
Send, {1 up}
}
}
return
So what is that: Press End key 1 time, it start looped search, for all of this colors in that pixel, and if hekili show spell with color 0xE97FFF (bc we replaced default icons) ahk do -> send C down\10msec\up and <- then the same for other colors\keys like 0x00A2E7 with key 1.

Okay good. But i want to enable and disable that. How2?

Ez.

Just add before code:

Code:
^F1::exitapp
F1::Pause, toggle
ctrl+F1 - - close script
F1 - - Pause\Resume ahk script.

Hmm cute and i had a little problem. My coordinates are different that ur how to find it?

Make another ahk script:

Code:
^z::  ; Control+Z hotkey.
MouseGetPos, MouseX, MouseY
PixelGetColor, RGB, %MouseX%, %MouseY%
MsgBox The color at the current cursor position is %RGB%.
MouseGetPos, xpos, ypos
MsgBox, The cursor is at X%xpos% Y%ypos%.
return
It show correct color and coordinates but ONLY WHEN WINDOW ACTIVE DONT FORGET TO CLICK ON WINDOW before click ctrl+z (1 appear color then coords).

Okay thats good now lets add simple gui to see some help stuff.

How to do that:

1. After "return" add this:

Code:
O::
KeyWait, O
Gui, Add, Text,,    < My text appears here in this line. >
Gui, Add, Text,,  
Gui, Add, Text,,  above empty line.
Gui, Add, Text,,  U can add any symbols after ,,
Gui, Add, Text,, So u can place here ur bind like: I binded Spell1 to key 1 dont forget to make same bind ingame. (Useful for friends)
gui, +alwaysontop
Gui, Show, NoActivate
KeyWait  O, D
Gui Destroy
What is that:

1. binds key O to create gui so we get: O:: when u click on O it create Gui with text.

2. KeyWait O, D - - after u click on key O again it close that gui but not script. (If script closes u make something wrong.)

3. Gui, Show, NoActivate - - show that gui but not activate it. (u can click on it and drag away. And still see that gui ingame if windowed because +alwaysontop)



Now u had ur own rotation bot. Be happy.


IM PRIVATE SERVER PLAYER AND THIS GUIDE FOR PRIVATE SERVERS.
SO I DONT RECOMMEND USE AHK ON LIVE\PTR SERVER BC BLIZZARD DONT ALLOW AHK!!



Finished example for balance dudu BFA:


Balance dudu script:

 
Click on me boi

Code:
^F1::exitapp
F1::Pause, toggle
End::
loop
{
PixelGetColor, color, 983, 824, RGB
If (color = 0xE97FFF)
{
Send, {c down}
sleep 10
Send, {c up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0x00A2E7)
{
Send, {1 down}
sleep 10
Send, {1 up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0xC6FF94)
{
Send, {2 down}
sleep 10
Send, {2 up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0xC89E1E)
{
Send, {3 down}
sleep 10
Send, {3 up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0xD9F6FA)
{
Send, {4 down}
sleep 10
Send, {4 up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0xC3A0EC)
{
Send, {y down}
sleep 10
Send, {y up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0xFFC886)
{
Send, {x down}
sleep 10
Send, {x up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0x420081)
{
Send, {q down}
sleep 10
Send, {q up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0x6B0000)
{
Send, {e down}
sleep 10
Send, {e up}
}
}
return
O::
KeyWait, O
Gui, Add, Text,,    < Program binds. >
Gui, Add, Text,, 
Gui, Add, Text,, End - Start rotation, F1 - pause\resume rotation! Ctrl+F1 - Exit. O - Show\Hide This window.
Gui, Add, Text,, 
Gui, Add, Text,,  <  In-game binds. ****Make sure u had same buttons ! >
Gui, Add, Text,, 
Gui, Add, Text,, Кнопки: 1 - Wrath 2 - Sunfire 3 - Moonfire  4 - Stellar Flare
Gui, Add, Text,, Кнопки: Y - Fury of Elune X - Celestial Alignment Q - Starsurge E - Lunar Strike
Gui, Add, Text,, Кнопки: C - Moonkin Form.
Gui, Add, Text,, 
Gui, Add, Text,,           < Setup Hekili. >
Gui, Add, Text,, 
Gui, Add, Text,, Hekili: Single Target always, OR DISABLE STARFALL!!
Gui, Add, Text,, Hekili: On screen pos.  - X 31 Y -271. Icon Width: W 152 H 160 ZOOM 30
Gui, Add, Text,, Hekili: ! MAKE SHOW ONLY 1 BUTTON !
Gui, Add, Text,, 
Gui, Add, Text,,	          < TALLENTS: >
Gui, Add, Text,,
Gui, Add, Text,,  | 1 | Х | Х | Х | 2 | 2 or 3 | 1 or 2 |
Gui, Add, Text,,
Gui, Add, Text,,	      Good Game. ;3
gui, +alwaysontop
Gui, Show, NoActivate
KeyWait  O, D
Gui Destroy
My fail. If u get wrong color codes, use PixelPredator. To get hex color code. (Hit "set color" activate game window then by mouseover and ctrl get ur icon color.)
 
Click on me.

Code:
/*
	Name: Pixel Predator v1.2.1 (Release Copy)
	Written By: Hellbent aka CivReborn
	Date Started: June 2nd, 2019
	Date Of Last Edit: June 3rd,2019
	Paste: https://pastebin.com/N1VB1HtE
	Description: Pixel Search Script
*/
#SingleInstance,Force
#NoEnv
ListLines,Off
SetBatchLines,-1
CoordMode,Mouse,Screen
CoordMode,Pixel,Screen
SetKeyDelay,30
SetMouseDelay,30
SetDefaultMouseSpeed,0
Gdip_Startup()
global HB_Button:=[],Selected_Color:="610094",Color_Edit:="0x610094",Stop:=1,X_Pos:="",Y_Pos:="",W_Pos:="",H_Pos:="",cx2:="",cy2:="",cx:="",cy:="",Commands:="",Variation:=0,Start_Key :="Numpad1",Stop_Key:="Numpad2",RTimes:=1,CMove:=1,CTimes:=1,XOff:=10,YOff:=10,TypeC:="Left",Send_Stuff:="",M_Delay:=30,Key_Delay:=30,Delay:=500
Hotkey,%Start_Key%,Start_Search
Hotkey,%Stop_Key%,Stop_Search
Main := New Custom_Window( x:= 0 , y:= 0 , w:= 450 , h:= 300 , Name:= "1" , Options:= "+AlwaysOnTop -Caption -DPIScale" , Title:= "Pixel Predator v1.2" , Background_Bitmap:= PixelPredatorBG() )
Gui,1:Add,Text,x5 y5 w30 h30 BackgroundTrans gTag
Gui,1:Add,Text,x85 y6 w280 h28 BackgroundTrans gMove_Window
Gui,1:Add,Text,x409 y6 w15 h15 BackgroundTrans gMin_Window
Gui,1:Add,Text,x429 y6 w15 h15 BackgroundTrans gGuiClose
Gui,1:Color,222222,222222
Gui,1:Font,cffffff s8 ,arial
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x:=30  , y := 52 , w := 100 , h := 30 , Button_Color := "22005C" , Button_Background_Color := "333333" , Text := "Set Color" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "SetColor" , Default_Button := 0 , Roundness:=2 ) )
Gui,1:Add,Progress,x145 y54 w50 h24 Background000000 c%Selected_Color% vSelected_Color,100
Gui,1:Add,Edit, x210 y55 w80 h22 Center vColor_Edit,% Color_Edit
Gui,1:Add,Edit, x365 y55 w50 h22 Center Number Limit2 vVariation,% Variation
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x:=30  , y := 97 , w := 100 , h := 30 , Button_Color := "22005C" , Button_Background_Color := "333333" , Text := "Set Search Area" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "Set_Position" , Default_Button := 0 , Roundness:=2 ) )
Gui,1:Add,Edit, x175 y100 w40 h22 Center ReadOnly vX_Pos,null
Gui,1:Add,Edit, x245 y100 w40 h22 Center ReadOnly vY_Pos,null
Gui,1:Add,Edit, x315 y100 w40 h22 Center ReadOnly vW_Pos,null
Gui,1:Add,Edit, x385 y100 w40 h22 Center ReadOnly vH_Pos,null
Global Truth:=[]
Truth[1]:=New Flat_Round_Radio_Type_1(x:=35,y:=147,w:=60,Text:="True",Font:="Arial",FontSize:= "10 Bold" , FontColor:="FFFFFF" ,Window:="1",Background_Color:="333333",HighLightColor:="A866E2",State:=1,GroupArray:=Truth)
Truth[2]:=New Flat_Round_Radio_Type_1(x+=w,y:=147,w:=80,Text:="False",Font:="Arial",FontSize:= "10 Bold" , FontColor:="FFFFFF" ,Window:="1",Background_Color:="333333",HighLightColor:="A866E2",State:=0,GroupArray:=Truth)
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x:=210  , y := 138 , w := 195 , h := 38 , Button_Color := "22005C" , Button_Background_Color := "252525" , Text := "Open   ""Send""   Documentation" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "OpenDoc" , Default_Button := 0 , Roundness:=2 ) )
Gui,1:Add,Edit, x25 y190 w260 h22 vCommands,% Commands
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x:=293  , y := 187 , w := 30 , h := 30 , Button_Color := "22005C" , Button_Background_Color := "333333" , Text := "C" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "Defall" , Default_Button := 0 , Roundness:=2 ) )
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x+=w+5  , y := 187 , w := 30 , h := 30 , Button_Color := "22005C" , Button_Background_Color := "333333" , Text := "M" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "DefallM" , Default_Button := 0 , Roundness:=2 ) )
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x+=w+5  , y := 187 , w := 30 , h := 30 , Button_Color := "22005C" , Button_Background_Color := "333333" , Text := "T" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "DefallT" , Default_Button := 0 , Roundness:=2 ) )
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x+=w+5  , y := 187 , w := 30 , h := 30 , Button_Color := "22005C" , Button_Background_Color := "333333" , Text := "?" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "Run_Command_Window" , Default_Button := 0 , Roundness:=2 ) )
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x:=50  , y := 225 , w := 350 , h := 30 , Button_Color := "22005C" , Button_Background_Color := "252525" , Text := "<><><><>   Hotkeys & Info   <><><><>" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "Run_Hotkey_Window" , Default_Button := 0 , Roundness:=2 ) )
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x:=20  , y += h+3 , w := 130 , h := 30 , Button_Color := "22005C" , Button_Background_Color := "252525" , Text := "Start" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "StartBB" , Default_Button := 0 , Roundness:=2 ) )
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x+=w+10  , y , w  , h := 30 , Button_Color := "22005C" , Button_Background_Color := "252525" , Text := "Stop" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "StopBB" , Default_Button := 0 , Roundness:=2 ) )
HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x+=w+10  , y , w  , h := 30 , Button_Color := "22005C" , Button_Background_Color := "252525" , Text := "Reload" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "1" , Label := "Reload" , Default_Button := 0 , Roundness:=2 ) )
Main.Show_Window()
GuiControl , % HB_Button[ 1 ].Window ": Focus" , % HB_Button[ 1 ].Hwnd
SetTimer, HB_Button_Hover , 50
return
GuiClose:
	ExitApp
Tag(){
	Stop:=1
	try
		run,https://www.youtube.com/channel/UCge0TKjySLXd8xeLib8F0rA
}
Move_Window(){
	PostMessage,0xA1,2
}
Min_Window(){
	Gui,1:Minimize
}
Reload(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	Reload
}
OpenDoc(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	try	{
		Run, https://autohotkey.com/docs/commands/Send.htm
	}catch	{
		Gui,1:+OwnDialogs
		msgbox,,Failed to open Send Documentation Page,Google Search - Autohotkey Send
	}
}
Defall(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	GuiControl,1:,Commands,*1*1*1*10*10*Left*%M_Delay%*%Key_Delay%*%Delay%*
}
DefallM(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	GuiControl,1:,Commands,*1*0*1*10*10*Left*%M_Delay%*%Key_Delay%*%Delay%*
}
DefallT(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	GuiControl,1:,Commands,*1*0*0*10*10*Left*%M_Delay%*%Key_Delay%*%Delay%*
}
SetColor(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	While(!GetKeyState("ctrl")){
		ToolTip,Press ""Ctrl"" to set Search Color
		MouseGetPos,tpx,tpy
		PixelGetColor,Selected_Color,%tpx%,%tpy%,RGB
		GuiControl,1:+c%Selected_Color%,Selected_Color
		GuiControl,1:,Color_Edit,% Selected_Color
	}
	ToolTip,
}
StartBB(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	Start_Search()
}
StopBB(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
}
Set_Position(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	SPOS()
}
SPOS(){
	global
	Gui,3:-Caption -DPIScale +LastFound +E0x80000 +ToolWindow +AlwaysOnTop
	Gui,3:Show,x0 y0 w%A_ScreenWidth% h%A_ScreenHeight% NA
	hwnd1:=WinExist(),hbm := CreateDIBSection(A_ScreenWidth,A_ScreenHeight),hdc := CreateCompatibleDC(),obm := SelectObject(hdc,hbm)
	G := Gdip_GraphicsFromHDC(hdc),Gdip_SetSmoothingMode(G,4),UpdateLayeredWindow(hwnd1, hdc, 0, 0,A_ScreenWidth,A_ScreenHeight)
	Br1:=New_Brush("ff0066","ff"),Br2:=New_Brush("12e854","55"),Br3:=New_Brush("de0d0a","aa")
	UpdateLayeredWindow(hwnd1, hdc),Pos_Setting_Active:=1,TL:=1
	SetTimer,Draw_Cross,10
}
Draw_Cross:
	Gdip_GraphicsClear(G)
	if(TL=1){
		MouseGetPos,cx,cy
		Fill_Box(G,Br1,0,cy,A_ScreenWidth,1),Fill_Box(G,Br1,cx,0,1,A_ScreenHeight)
		GuiControl,1:,X_Pos,% cx
		GuiControl,1:,Y_Pos,% cy
		X_Pos:=cx,Y_Pos:=cy
	}
	else if(TL=2){
		MouseGetPos,cx2,cy2
		if(cx2-cx>=0&&cy2-cy>=0){
			OB:=0
			Fill_Box(G,Br1,0,cy2,A_ScreenWidth,1),Fill_Box(G,Br1,cx2,0,1,A_ScreenHeight),Fill_Box(G,Br1,0,cy,A_ScreenWidth,1)
			Fill_Box(G,Br1,cx,0,1,A_ScreenHeight),Fill_Box(G,Br2,cx,cy,cx2-cx,cy2-cy)
			GuiControl,1:,W_Pos,% cx2 - cx
			GuiControl,1:,H_Pos,% cy2 - cy
		}
		else if(cx2-cx>=0&&cy2-cy<0){
			OB:=1
			Fill_Box(G,Br1,0,cy2,A_ScreenWidth,1),Fill_Box(G,Br1,cx2,0,1,A_ScreenHeight),Fill_Box(G,Br1,0,cy,A_ScreenWidth,1)
			Fill_Box(G,Br1,cx,0,1,A_ScreenHeight),Fill_Box(G,Br3,cx,cy2,cx2-cx,cy-cy2)
			GuiControl,1:,W_Pos,% (cx2 - cx)
			GuiControl,1:,H_Pos,% (cy2 - cy)*-1
		}
		else if(cx2-cx<0&&cy2-cy>=0){
			OB:=1
			Fill_Box(G,Br1,0,cy2,A_ScreenWidth,1),Fill_Box(G,Br1,cx2,0,1,A_ScreenHeight),Fill_Box(G,Br1,0,cy,A_ScreenWidth,1)
			Fill_Box(G,Br1,cx,0,1,A_ScreenHeight),Fill_Box(G,Br3,cx2,cy,cx-cx2,cy2-cy)
			GuiControl,1:,W_Pos,% (cx2 - cx)*-1
			GuiControl,1:,H_Pos,% (cy2 - cy)
		}
		else if(cx2-cx<0&&cy2-cy<0){
			OB:=1
			Fill_Box(G,Br1,0,cy2,A_ScreenWidth,1),Fill_Box(G,Br1,cx2,0,1,A_ScreenHeight),Fill_Box(G,Br1,0,cy,A_ScreenWidth,1)
			Fill_Box(G,Br1,cx,0,1,A_ScreenHeight),Fill_Box(G,Br3,cx2,cy2,cx-cx2,cy-cy2)
			GuiControl,1:,W_Pos,% (cx2 - cx)*-1
			GuiControl,1:,H_Pos,% (cy2 - cy)*-1
		}
	}
	UpdateLayeredWindow(hwnd1, hdc)	
	return
SortCommandList(){
	GuiControlGet,Commands,1:,Commands
	stringleft,tep,Commands,1
	if(tep="*"){
		CMove:="",CTimes:="",XOff:="",YOff:="",TypeC:="Left",RTimes:=1,Send_Stuff:=""
		Loop, Parse, Commands,*
		{
			(A_Index=2)?(RTimes:=A_LoopField)
			:(A_Index=3)?(CMove:=A_LoopField)
			:(A_Index=4)?(CTimes:=A_LoopField)
			:(A_Index=5)?(XOff:=A_LoopField)
			:(A_Index=6)?(YOff:=A_LoopField)
			:(A_Index=7)?(TypeC:=A_LoopField)
			:(A_Index=8)?(M_Delay:=A_LoopField)
			:(A_Index=9)?(Key_Delay:=A_LoopField)
			:(A_Index=10)?(Delay:=A_LoopField)
			:(A_Index=11)?(Send_Stuff:=A_LoopField)
		}
		Return True
	}else	{
		Gui,1:+OwnDialogs
		MsgBox,,Error,There is a error with your command setup
		Stop:=1
		return False
	}
}
Click_Function(x,y,LT,BTN){
	CoordMode,Mouse,Screen
	SetMouseDelay,%M_Delay%
	index:=0
	While(Index<LT&&!Stop){
		Click %BTN%,%x%,%y%
		index++
	}
}
Move_Function(x,y){
	CoordMode,Mouse,Screen
	MouseMove,x,y,0
}
Send_Function(SS){
	SetKeyDelay,%Key_Delay%
	Send,% SS
}
Start_Search(){
	Stop:=0
	if(!SortCommandList())
		return
	GuiControlGet,Color_Edit,1:,Color_Edit
	GuiControlGet,Variation,1:,Variation 
	While(!Stop){
		PixelSearch,px,py,X_Pos,Y_Pos,cx2,cy2,Color_Edit,Variation,Fast|RGB
		if(!ErrorLevel&&Truth[1].State=1){
			if(CMove=1)
				Click_Function(px+XOff,py+YOff,CTimes,TypeC)
			else if(CMove=0&&CTimes>=1)
				Move_Function(px+XOff,py+YOff)
			if(Send_Stuff)
				Send_Function(Send_Stuff)
			if(RTimes=0){
				Stop:=1
				return
			}
			Sleep,% Delay
		}else if(ErrorLevel=1&&Truth[2].State=1){
			if(Send_Stuff)
				Send_Function(Send_Stuff)
			if(RTimes=0){
				Stop:=1
				return
			}
			Sleep,% Delay
		}
	}
}
Stop_Search(){
	Stop:=1
}
#If (Pos_Setting_Active=1)
*Lbutton::
	if(TL=1)
		TL:=2
	else if(TL=2&&OB=0){
		Gui,3:Destroy
		Pos_Setting_Active:=0
		SetTimer,Draw_Cross,Off
	}
	return
#If
Run_Hotkey_Window(){
	static HKWindow:={}
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	if(!HKWindow.Hwnd){
		HKWindow := New Custom_Window( x:= 0 , y:= 0 , w:= 300 , h:= 250 , Name:= "6" , Options:= "+AlwaysOnTop -Caption -DPIScale +Owner1" , Title:= "Command Window" , Background_Bitmap:= HotkeyWindow() )
		Gui,6:Add,Text,x50 y6 w200 h26 BackgroundTrans gMove_Window
		Gui,6:Add,Hotkey,x60 y125 w140 h22 vStart_Key,% Start_Key
		Gui,6:Add,Hotkey,x60 y162 w140 h22 vStop_Key,% Stop_Key
		HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x:=208  , y:=123 , w:=70  , h := 28 , Button_Color := "22005C" , Button_Background_Color := "333333" , Text := "Update" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "6" , Label := "UpdateStartKey" , Default_Button := 0 , Roundness:=2 ) )
		HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x:=208  , y:=160 , w:=70  , h := 28 , Button_Color := "22005C" , Button_Background_Color := "333333" , Text := "Update" , Font := "Arial" , Font_Size := 10 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "6" , Label := "UpdateStopKey" , Default_Button := 0 , Roundness:=2 ) )
		HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x:=50  , y:=195 , w:=200  , h := 40 , Button_Color := "22005C" , Button_Background_Color := "252525" , Text := "OK" , Font := "Arial" , Font_Size := 14 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "6" , Label := "CloseHKWindow" , Default_Button := 0 , Roundness:=2 ) )
	}
	HKWindow.Show_Window()
}
CloseHKWindow(){
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	Gui,6:Hide
}
UpdateStartKey(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	GuiControlGet,New_Key,6:,Start_Key
	if(New_Key!=Start_Key&&New_Key!=null){
		Hotkey,%Start_Key%,Start_Search,Off
		Hotkey,% Start_Key:=New_Key,Start_Search,On
	}
}
UpdateStopKey(){
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	GuiControlGet,New_Key,6:,Stop_Key
	if(New_Key!=Stop_Key&&New_Key!=null){
		Hotkey,%Stop_Key%,Stop_Search,Off
		Hotkey,% Stop_Key:=New_Key,Stop_Search,On
	}
}
Run_Command_Window(){
	static CommandWindow:={}
	Stop:=1
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	if(!CommandWindow.Hwnd){
		CommandWindow := New Custom_Window( x:= 0 , y:= 0 , w:= 400 , h:= 500 , Name:= "5" , Options:= "+AlwaysOnTop -Caption -DPIScale +Owner1" , Title:= "Command Window" , Background_Bitmap:= CommandWindow() )
		Gui,5:Add,Text,x50 y6 w300 h29 BackgroundTrans gMove_Window
		HB_Button.Push( New HB_Flat_Rounded_Button_Type_1( x:=100  , y:=440 , w:=200  , h := 40 , Button_Color := "22005C" , Button_Background_Color := "252525" , Text := "OK" , Font := "Arial" , Font_Size := 14 " Bold" , Font_Color_Top := "aaaaaa" , Font_Color_Bottom := "000000" , Window := "5" , Label := "CloseCommandWindow" , Default_Button := 0 , Roundness:=5 ) )
	}
	CommandWindow.Show_Window()
}
CloseCommandWindow(){
	GuiControl , % HB_Button[ A_GuiControl ].Window ": Focus" , % HB_Button[ A_GuiControl ].Hwnd
	if( ! HB_Button[ A_GuiControl ].Draw_Pressed() )
		return
	Gui,5:Hide
}
class Flat_Round_Radio_Type_1	{
	__New(x,y,w:=19,Text:="Text",Font:="Arial",FontSize:= "10 Bold" , FontColor:="FFFFFF" ,Window:="1",Background_Color:="36373A",HighLightColor:="1A1C1F",State:=0,GroupArray:=""){
		This.State:=State,This.X:=x,This.Y:=y,This.W:=W,This.H:=19,This.Text:=Text,This.Font:=Font,This.FontSize:=FontSize,This.FontColor:="0xFF" FontColor
		This.HighLightColor:= "0xFF" HighLightColor,This.GroupArray:=GroupArray,This.Name:=This.GroupArray.Length()+1,This.Background_Color:="0xFF" Background_Color,This.Window:=Window
		This.Create_Off_Bitmap(),This.Create_On_Bitmap(),This.Create_Trigger()
		sleep,20
		if(This.State)
			This.Draw_On()
		else
			This.Draw_Off()
		udb := THIS.UpdateValue.BIND( THIS )
		SetTimer,% udb,-100
	}
	Create_Trigger(){
		Gui , % This.Window ": Add" , Picture , % "x" This.X " y" This.Y " w" This.W " h" This.H " 0xE hwndHwnd"
		This.Hwnd:=hwnd
		BD := THIS.Switch_State.BIND( THIS ) 
		GUICONTROL +G , % This.Hwnd , % BD
	}
	Create_Off_Bitmap(){
		;Bitmap Created Using: HB Bitmap Maker
		pBitmap:=Gdip_CreateBitmap( This.W , 19 ) 
		 G := Gdip_GraphicsFromImage( pBitmap )
		Gdip_SetSmoothingMode( G , 2 )
		Brush := Gdip_BrushCreateSolid( This.Background_Color )
		Gdip_FillRectangle( G , Brush , -1 , -1 , This.W+2 , 21 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF313436" )
		Gdip_FillEllipse( G , Brush , 1 , 1 , 17 , 17 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF1A1C1F" )
		Gdip_FillEllipse( G , Brush , 1 , 0 , 17 , 17 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 7 , 1 , 10 , 14 , "0xFF60646A" , "0xFF393B3F" , 1 , 1 )
		Gdip_FillEllipse( G , Brush , 2 , 1 , 15 , 15 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 7 , 2 , 10 , 14 , "0xFF4A4D52" , "0xFF393B3F" , 1 , 1 )
		Gdip_FillEllipse( G , Brush , 3 , 2 , 13 , 13 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF4D5055" )
		Gdip_FillEllipse( G , Brush , 7 , 7 , 5 , 6 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF222325" )
		Gdip_FillEllipse( G , Brush , 7 , 6 , 5 , 5 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( This.FontColor )
		Gdip_TextToGraphics( G , This.Text , "s" This.FontSize " vCenter c0xFF000000 x22 y-1" , This.Font , This.W-23, This.H )
		Gdip_TextToGraphics( G , This.Text , "s" This.FontSize " vCenter c" Brush " x23 y0" , This.Font , This.W-23, This.H )
		Gdip_DeleteBrush( Brush )
		Gdip_DeleteGraphics( G )
		This.Off_Bitmap := Gdip_CreateHBITMAPFromBitmap(pBitmap)
		Gdip_DisposeImage(pBitmap)
	}
	Create_On_Bitmap(){
		;Bitmap Created Using: HB Bitmap Maker
		pBitmap:=Gdip_CreateBitmap( This.W , 19 ) 
		 G := Gdip_GraphicsFromImage( pBitmap )
		Gdip_SetSmoothingMode( G , 2 )
		Brush := Gdip_BrushCreateSolid( This.Background_Color )
		Gdip_FillRectangle( G , Brush , -1 , -1 , This.W+2 , 21 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF484A4B" )
		Gdip_FillEllipse( G , Brush , 1 , 1 , 17 , 17 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF1A1C1F" )
		Gdip_FillEllipse( G , Brush , 1 , 0 , 17 , 17 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF29292F" )
		Gdip_FillEllipse( G , Brush , 2 , 1 , 15 , 15 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 5 , 1 , 10 , 14 , "0xFF2E2F31" , "0xFF333337" , 1 , 1 )
		Gdip_FillEllipse( G , Brush , 3 , 2 , 13 , 13 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF4D5055" )
		Gdip_FillEllipse( G , Brush , 7 , 7 , 5 , 5 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( This.HighLightColor )
		Gdip_FillEllipse( G , Brush , 7 , 6 , 5 , 5 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFFA866E2" )
		Gdip_TextToGraphics( G , This.Text , "s" This.FontSize " vCenter c0xFF000000 x22 y-1" , This.Font , This.W-23, This.H )
		Gdip_TextToGraphics( G , This.Text , "s" This.FontSize " vCenter c0xFF000000 x24 y-1" , This.Font , This.W-23, This.H )
		Gdip_TextToGraphics( G , This.Text , "s" This.FontSize " vCenter c0xFF000000 x22 y1" , This.Font , This.W-23, This.H )
		Gdip_TextToGraphics( G , This.Text , "s" This.FontSize " vCenter c0xFF000000 x24 y1" , This.Font , This.W-23, This.H )
		Gdip_TextToGraphics( G , This.Text , "s" This.FontSize " vCenter c" Brush " x23 y0" , This.Font , This.W-23, This.H )
		Gdip_DeleteBrush( Brush )
		Gdip_DeleteGraphics( G )
		This.On_Bitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
		Gdip_DisposeImage( pBitmap )
	}
	UpdateValue(){
		Loop,% This.GroupArray.Length()	
			if(This.GroupArray[A_Index].State=1){
				lc:=A_Index
				Loop,% This.GroupArray.Length()	
					This.GroupArray[A_Index].Value:=lc
			}
	}
	Switch_State(){
		if(This.State!=1){
			This.State:=1
			This.Draw_On()
			Loop,% This.GroupArray.Length()	{
				if(This.GroupArray[A_Index].Name!=This.Name){
					This.GroupArray[A_Index].State:=0
					This.GroupArray[A_Index].Draw_Off()
				}
			}
			Loop,% This.GroupArray.Length()	{
				if(This.GroupArray[A_Index].State=1){
					This.Value:=A_Index
					break
				}
			}
			Loop,% This.GroupArray.Length()	{
					This.GroupArray[A_Index].Value:=This.Value
			}
		}
	}
	Draw_Off(){
		SetImage( This.Hwnd , This.Off_Bitmap )
	}
	Draw_On(){
		SetImage( This.Hwnd , This.On_Bitmap )
	}
}
HB_Button_Hover(){
	Static Index , Hover_On
	MouseGetPos,,,, ctrl , 2
	if( ! Hover_On && ctrl ){
		loop , % HB_Button.Length()
			if( ctrl = HB_Button[ A_Index ].hwnd )
				HB_Button[ A_Index ].Draw_Hover() , Index := A_Index , Hover_On := 1 , break
	}else if( Hover_On = 1 )
		if( ctrl != HB_Button[ Index ].Hwnd )
			HB_Button[ Index ].Draw_Default() , Hover_On := 0
}
class HB_Flat_Rounded_Button_Type_1	{
	__New( x := 10 , y := 10 , w := 150 , h := 40 , Button_Color := "FF0000" , Button_Background_Color := "222222" , Text := "Button" , Font := "Arial" , Font_Size := 16 , Font_Color_Top := "000000" , Font_Color_Bottom := "FFFFFF" , Window := "1" , Label := "" , Default_Button := 1, Roundness:=5 ){
		This.Roundness:=Roundness,This.Text_Color_Top := "0xFF" Font_Color_Top,This.Text_Color_Bottom := "0xFF" Font_Color_Bottom,This.Font := Font 
		This.Font_Size := Font_Size,This.Text := Text,This.X:=x,This.Y:=y,This.W := w,This.H := h 
		This.Button_Background_Color := "0xFF" Button_Background_Color,This.Button_Color := "0xFF" Button_Color,This.Window := Window,This.Label := Label 
		This.Default_Button := Default_Button,This.Create_Default_Bitmap(),This.Create_Hover_Bitmap(),This.Create_Pressed_Bitmap(),This.Create_Trigger()
		sleep, 20
		This.Draw_Default()
	}
	Create_Trigger(){
		global
		num := HB_Button.Length()+1
		Gui , % This.Window ": Add" , Picture , % "x" This.X " y" This.Y " w" This.W " h" This.H " hwndHwnd v" Num " g" This.Label " 0xE"
		This.Number := Num , This.Hwnd := Hwnd
	}
	Create_Default_Bitmap(){
		;Bitmap Created Using: HB Bitmap Maker
		pBitmap:=Gdip_CreateBitmap( This.W , This.H )
		 G := Gdip_GraphicsFromImage( pBitmap )
		Gdip_SetSmoothingMode( G , 2 )
		Brush := Gdip_BrushCreateSolid( This.Button_Background_Color )
		Gdip_FillRectangle( G , Brush , -1 , -1 , This.W+2 , This.H+2 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , This.W , This.H , "0xFF61646A" , "0xFF2E2124" , 1 , 1 )
		Gdip_FillRoundedRectangle( G , Brush , 0 , 1 , This.W , This.H-3 , This.Roundness )
		Gdip_DeleteBrush( Brush )
		if(This.Default_Button)
			Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , This.W , This.H , "0xFF4C4F54" , "0xFF35373B" , 1 , 1 )
		else 	
			Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , This.W , This.H , This.Button_Color , "0xFF222222" , 1 , 1 )
		Gdip_FillRoundedRectangle( G , Brush , 1 , 2 , This.W-2 , This.H-5 , This.Roundness )
		Gdip_DeleteBrush( Brush )
		Pen := Gdip_CreatePen( "0xFF000000" , 1 )
		Gdip_DrawRoundedRectangle( G , Pen , 0 , 0 , This.W-1 , This.H-3 , This.Roundness )
		Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( This.Text_Color_Bottom )
		Gdip_TextToGraphics( G , This.Text , "s" This.Font_Size " Center vCenter c" Brush " x1 y2 " , This.Font , This.W , This.H-1 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( This.Text_Color_Top )
		Gdip_TextToGraphics( G , This.Text , "s" This.Font_Size " Center vCenter c" Brush " x0 y1 " , This.Font , This.W , This.H-1 )
		Gdip_DeleteBrush( Brush )
		Gdip_DeleteGraphics( G )
		This.Default_Bitmap := Gdip_CreateHBITMAPFromBitmap(pBitmap)
		Gdip_DisposeImage(pBitmap)
	}
	Create_Hover_Bitmap(){
		;Bitmap Created Using: HB Bitmap Maker
		pBitmap:=Gdip_CreateBitmap( This.W , This.H )
		 G := Gdip_GraphicsFromImage( pBitmap )
		Gdip_SetSmoothingMode( G , 2 )
		Brush := Gdip_BrushCreateSolid( This.Button_Background_Color )
		Gdip_FillRectangle( G , Brush , -1 , -1 , This.W+2 , This.H+2 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , This.W , This.H , "0xFF61646A" , "0xFF2E2124" , 1 , 1 )
		Gdip_FillRoundedRectangle( G , Brush , 0 , 1 , This.W , This.H-3 , This.Roundness )
		Gdip_DeleteBrush( Brush )
		if(This.Default_Button)
			Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , This.W , This.H , "0xFF55585D" , "0xFF3B3E41" , 1 , 1 )
		else 
			Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , This.W , This.H , "0xff620096" , "0xFF333333" , 1 , 1 )
		Gdip_FillRoundedRectangle( G , Brush , 1 , 2 , This.W-2 , This.H-5 , This.Roundness )
		Gdip_DeleteBrush( Brush )
		Pen := Gdip_CreatePen( "0xFF1A1C1F" , 1 )
		Gdip_DrawRoundedRectangle( G , Pen , 0 , 0 , This.W-1 , This.H-3 , This.Roundness )
		Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( This.Text_Color_Bottom )
		Gdip_TextToGraphics( G , This.Text , "s" This.Font_Size " Center vCenter c" Brush " x1 y2" , This.Font , This.W , This.H-1 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( This.Text_Color_Top )
		Gdip_TextToGraphics( G , This.Text , "s" This.Font_Size " Center vCenter c" Brush " x0 y1" , This.Font , This.W , This.H-1 )
		Gdip_DeleteBrush( Brush )
		Gdip_DeleteGraphics( G )
		This.Hover_Bitmap := Gdip_CreateHBITMAPFromBitmap(pBitmap)
		Gdip_DisposeImage(pBitmap)
	}
	Create_Pressed_Bitmap(){
		pBitmap:=Gdip_CreateBitmap( This.W , This.H )
		 G := Gdip_GraphicsFromImage( pBitmap )
		Gdip_SetSmoothingMode( G , 2 )
		Brush := Gdip_BrushCreateSolid( This.Button_Background_Color )
		Gdip_FillRectangle( G , Brush , -1 , -1 , This.W+2 , This.H+2 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 0 , 0 , This.W , This.H , "0xFF2A2C2E" , "0xFF45474E" , 1 , 1 )
		Gdip_FillRoundedRectangle( G , Brush , 0 , 1 , This.W , This.H-3 , This.Roundness )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF2A2C2E" )
		Gdip_FillRoundedRectangle( G , Brush , 0 , 0 , This.W , This.H-8 , This.Roundness )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( "0xFF46474D" )
		Gdip_FillRoundedRectangle( G , Brush , 0 , 7 , This.W , This.H-8 , This.Roundness )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_CreateLineBrushFromRect( 5 , 3 , This.W ,This.H-7 , "0xFF111111" , "0xFF610094" , 1 , 1 )
		Gdip_FillRoundedRectangle( G , Brush , 1 , 2 , This.W-3 , This.H-6 , This.Roundness )
		Gdip_DeleteBrush( Brush )
		Pen := Gdip_CreatePen( "0xFF1A1C1F" , 1 )
		Gdip_DrawRoundedRectangle( G , Pen , 0 , 0 , This.W-1 , This.H-3 , This.Roundness )
		Gdip_DeletePen( Pen )
		Brush := Gdip_BrushCreateSolid( This.Text_Color_Bottom )
		Gdip_TextToGraphics( G , This.Text , "s" This.Font_Size " Center vCenter c" Brush " x1 y3" , This.Font , This.W , This.H-1 )
		Gdip_DeleteBrush( Brush )
		Brush := Gdip_BrushCreateSolid( This.Text_Color_Top )
		Gdip_TextToGraphics( G , This.Text , "s" This.Font_Size " Center vCenter c" Brush " x0 y2" , This.Font , This.W , This.H-1 )
		Gdip_DeleteBrush( Brush )
		Gdip_DeleteGraphics( G )
		This.Pressed_Bitmap := Gdip_CreateHBITMAPFromBitmap( pBitmap )
		Gdip_DisposeImage( pBitmap )
	}
	Draw_Default(){
		SetImage( This.Hwnd , This.Default_Bitmap )
	}
	Draw_Hover(){
		SetImage( This.Hwnd , This.Hover_Bitmap )
	}
	Draw_Pressed(){
		SetImage( This.Hwnd , This.Pressed_Bitmap )
		SetTimer , HB_Button_Hover , Off
		While( GetKeyState( "LButton" ) )
			sleep , 10
		SetTimer , HB_Button_Hover , On
		MouseGetPos,,,, ctrl , 2
		if( This.Hwnd != ctrl ){
			This.Draw_Default()
			return False
		}else	{
			This.Draw_Hover()
			return true
		}
	}
}
Class Custom_Window	{
	__New(x:="",y:="",w:=300,h:=200,Name:=1,Options:="+AlwaysOnTop -Caption -DPIScale",Title:="",Background_Bitmap:=""){
		This.X:=x,This.Y:=y,This.W:=w,This.H:=h,This.Name:=Name,This.Title:=Title,This.Options:=Options,This.Background_Bitmap:=Background_Bitmap,This.Create_Window()
	}
	Create_Window(){
		Gui,% This.Name ":New",%  This.Options " +LastFound"
		This.Hwnd:=WinExist()
		if(This.Background_Bitmap)
			This.Draw_Background_Bitmap()
	}
	Draw_Background_Bitmap(){
		This.Bitmap:=Gdip_CreateHBITMAPFromBitmap(This.Background_Bitmap)
		Gdip_DisposeImage(This.Background_Bitmap)
		Gui,% This.Name ":Add",Picture,% "x0 y0 w" This.W " h" This.H " 0xE hwndhwnd"
		This.Background_Hwnd:=hwnd
		SetImage(This.Background_Hwnd,This.Bitmap)
	}
	Show_Window(){
		if(This.X&&This.Y)
			Gui,% This.Name ":Show",% "x" This.X " y" This.Y " w" This.W " h" This.H,% This.Title
		else if(This.X&&!This.Y)
			Gui,% This.Name ":Show",% "x" This.X  " w" This.W " h" This.H,% This.Title
		else if(!This.X&&This.Y)
			Gui,% This.Name ":Show",% "y" This.Y  " w" This.W " h" This.H,% This.Title
		else
			Gui,% This.Name ":Show",% " w" This.W " h" This.H,% This.Title
	}
}
PixelPredatorBG(){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap:=Gdip_CreateBitmap( 450 , 300 ) 
	 G := Gdip_GraphicsFromImage( pBitmap )
	Gdip_SetSmoothingMode( G , 4 )
	Brush := Gdip_CreateLineBrush( 66 , 77 , 100 , 100 , "0xFF111111" , "0xFF22005E" , 1 )
	Gdip_FillRectangle( G , Brush , -2 , -2 , 454 , 303 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF252525" )
	Gdip_FillRectangle( G , Brush , 10 , 40 , 430 , 250 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 0 , 0 , 449 , 299 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawRectangle( G , Pen , 10 , 40 , 430 , 250 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrush( 14 , 9 , 21 , 22 , "0xFF7200AE" , "0xFF010101" , 1 )
	Gdip_FillRectangle( G , Brush , 5 , 5 , 30 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrush( 154 , 9 , 182 , 47 , "0xFF7200AE" , "0xFF010101" , 1 )
	Gdip_FillRectangle( G , Brush , 85 , 6 , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrush( 412 , 8 , 418 , 15 , "0xFF7200AE" , "0xFF010101" , 1 )
	Gdip_FillRectangle( G , Brush , 409 , 6 , 15 , 15 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_CreateLineBrush( 433 , 9 , 437 , 16 , "0xFF7200AE" , "0xFF010101" , 1 )
	Gdip_FillRectangle( G , Brush , 429 , 6 , 15 , 15 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 5 , 5 , 30 , 30 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 85 , 6 , 280 , 28 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 409 , 6 , 15 , 15 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 429 , 6 , 15 , 15 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "HB" , "s14 Center vCenter Bold c" Brush " x-5 y-4" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "HB" , "s14 Center vCenter Bold c" Brush " x-4 y-3" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Pixel Predator" , "s16 Center vCenter Bold c" Brush " x84 y5" , "Segoe UI" , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Pixel Predator" , "s16 Center vCenter Bold c" Brush " x85 y5" , "Segoe UI" , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Pixel Predator" , "s16 Center vCenter Bold c" Brush " x86 y5" , "Segoe UI" , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Pixel Predator" , "s16 Center vCenter Bold c" Brush " x86 y6" , "Segoe UI" , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Pixel Predator" , "s16 Center vCenter Bold c" Brush " x85 y6" , "Segoe UI" , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Pixel Predator" , "s16 Center vCenter Bold c" Brush " x84 y6" , "Segoe UI" , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Pixel Predator" , "s16 Center vCenter Bold c" Brush " x84 y7" , "Segoe UI" , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Pixel Predator" , "s16 Center vCenter Bold c" Brush " x85 y7" , "Segoe UI" , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Pixel Predator" , "s16 Center vCenter Bold c" Brush " x86 y7" , "Segoe UI" , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "Pixel Predator" , "s16 Center vCenter Bold c" Brush " x85 y6" , "Segoe UI" , 280 , 28 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x392 y-16" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x393 y-16" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x394 y-16" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x394 y-15" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x393 y-15" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x392 y-15" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x392 y-14" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x393 y-14" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x394 y-14" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "_" , "s14 Center vCenter Bold c" Brush " x393 y-15" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x412 y-12" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x413 y-12" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x414 y-12" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x414 y-11" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x413 y-11" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x412 y-11" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x412 y-10" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x413 y-10" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x414 y-10" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "x" , "s14 Center vCenter Bold c" Brush " x413 y-11" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 449 , 0 , 449 , 300 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 0 , 299 , 449 , 299 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 11 , 290 , 440 , 290 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 440 , 40 , 440 , 289 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 35 , 5 , 35 , 35 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 5 , 35 , 35 , 35 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 85 , 34 , 365 , 34 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 365 , 6 , 365 , 34 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 424 , 6 , 424 , 21 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 444 , 6 , 444 , 21 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 429 , 21 , 444 , 21 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 409 , 21 , 424 , 21 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF333333" )
	Gdip_FillRectangle( G , Brush , 16 , 45 , 419 , 40 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 15 , 45 , 420 , 40 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF333333" )
	Gdip_FillRectangle( G , Brush , 16 , 90 , 419 , 40 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 15 , 90 , 420 , 40 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF333333" )
	Gdip_FillRectangle( G , Brush , 16 , 135 , 159 , 40 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 15 , 135 , 160 , 40 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF333333" )
	Gdip_FillRectangle( G , Brush , 16 , 180 , 419 , 40 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 15 , 180 , 420 , 40 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 15 , 85 , 435 , 85 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 15 , 130 , 435 , 130 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 15 , 175 , 175 , 175 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 15 , 220 , 435 , 220 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 435 , 45 , 435 , 84 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 435 , 90 , 435 , 129 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 175 , 135 , 175 , 174 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 435 , 180 , 435 , 219 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 3 )
	Gdip_DrawEllipse( G , Pen , 290 , 12 , 15 , 15 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFFF0F0F0" , 1 )
	Gdip_DrawEllipse( G , Pen , 290 , 12 , 15 , 15 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_FillRectangle( G , Brush , 296 , 7 , 3 , 10 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_FillRectangle( G , Brush , 296 , 22 , 3 , 10 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_FillRectangle( G , Brush , 285 , 18 , 10 , 3 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_FillRectangle( G , Brush , 300 , 18 , 10 , 3 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_FillRectangle( G , Brush , 297 , 8 , 1 , 8 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_FillRectangle( G , Brush , 297 , 23 , 1 , 8 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_FillRectangle( G , Brush , 301 , 19 , 8 , 1 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_FillRectangle( G , Brush , 286 , 19 , 8 , 1 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFff0000" )
	Gdip_FillRectangle( G , Brush , 297 , 19 , 2 , 2 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Var:" , "s12 Center vCenter Bold c" Brush " x319 y41" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFaaaaaa" )
	Gdip_TextToGraphics( G , "Var:" , "s12 Center vCenter Bold c" Brush " x320 y42" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "X:" , "s12 Center vCenter Bold c" Brush " x136 y86" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFaaaaaa" )
	Gdip_TextToGraphics( G , "X:" , "s12 Center vCenter Bold c" Brush " x137 y87" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Y:" , "s12 Center vCenter Bold c" Brush " x206 y86" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFaaaaaa" )
	Gdip_TextToGraphics( G , "Y:" , "s12 Center vCenter Bold c" Brush " x207 y87" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "W:" , "s12 Center vCenter Bold c" Brush " x275 y86" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFaaaaaa" )
	Gdip_TextToGraphics( G , "W:" , "s12 Center vCenter Bold c" Brush " x276 y87" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "H:" , "s12 Center vCenter Bold c" Brush " x345 y86" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFaaaaaa" )
	Gdip_TextToGraphics( G , "H:" , "s12 Center vCenter Bold c" Brush " x346 y87" , "Arial" , 50 , 50 )
	Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	return pBitmap
}
CommandWindow(){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap:=Gdip_CreateBitmap( 400 , 500 ) 
	 G := Gdip_GraphicsFromImage( pBitmap )
	Gdip_SetSmoothingMode( G , 4 )
	Brush := Gdip_CreateLineBrush( 49 , 40 , 112 , 82 , "0xFF111111" , "0xFF22005E" , 1 )
	Gdip_FillRectangle( G , Brush , -1 , -1 , 404 , 504 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF252525" )
	Gdip_FillRectangle( G , Brush , 10 , 40 , 380 , 450 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 0 , 0 , 399 , 499 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 10 , 40 , 380 , 450 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 399 , 0 , 399 , 499 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 0 , 499 , 399 , 499 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 390 , 40 , 390 , 490 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 10 , 490 , 390 , 490 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrush( 76 , 6 , 118 , 59 , "0xFF7100AD" , "0xFF000000" , 1 )
	Gdip_FillRectangle( G , Brush , 50 , 6 , 300 , 29 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 50 , 6 , 300 , 29 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 50 , 35 , 350 , 35 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 350 , 7 , 350 , 34 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Command Line Format" , "s16 Center vCenter Bold c" Brush " x49 y7" , "Arial" , 300 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Command Line Format" , "s16 Center vCenter Bold c" Brush " x50 y7" , "Arial" , 300 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Command Line Format" , "s16 Center vCenter Bold c" Brush " x51 y7" , "Arial" , 300 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Command Line Format" , "s16 Center vCenter Bold c" Brush " x51 y8" , "Arial" , 300 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Command Line Format" , "s16 Center vCenter Bold c" Brush " x50 y8" , "Arial" , 300 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Command Line Format" , "s16 Center vCenter Bold c" Brush " x49 y8" , "Arial" , 300 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Command Line Format" , "s16 Center vCenter Bold c" Brush " x49 y9" , "Arial" , 300 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Command Line Format" , "s16 Center vCenter Bold c" Brush " x50 y9" , "Arial" , 300 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AE" )
	Gdip_TextToGraphics( G , "Command Line Format" , "s16 Center vCenter Bold c" Brush " x51 y9" , "Arial" , 300 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "Command Line Format" , "s16 Center vCenter Bold c" Brush " x50 y8" , "Arial" , 300 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF333333" )
	Gdip_FillRectangle( G , Brush , 51 , 51 , 298 , 50 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 52 , 52 , 297 , 49 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 52 , 101 , 349 , 101 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 349 , 52 , 349 , 101 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AD" )
	Gdip_TextToGraphics( G , "Format" , "s16 Center vCenter Bold c" Brush " x50 y47" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AD" )
	Gdip_TextToGraphics( G , "Format" , "s16 Center vCenter Bold c" Brush " x52 y47" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AD" )
	Gdip_TextToGraphics( G , "Format" , "s16 Center vCenter Bold c" Brush " x52 y49" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7200AD" )
	Gdip_TextToGraphics( G , "Format" , "s16 Center vCenter Bold c" Brush " x50 y49" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "Format" , "s16 Center vCenter Bold c" Brush " x51 y48" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "_________" , "s16 Center vCenter Bold c" Brush " x51 y50" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "*1*2*3*4*5*6*7*8*9*10" , "s16 Center vCenter Bold c" Brush " x50 y70" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "*1*2*3*4*5*6*7*8*9*10" , "s16 Center vCenter Bold c" Brush " x51 y70" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "*1*2*3*4*5*6*7*8*9*10" , "s16 Center vCenter Bold c" Brush " x52 y70" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "*1*2*3*4*5*6*7*8*9*10" , "s16 Center vCenter Bold c" Brush " x52 y71" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "*1*2*3*4*5*6*7*8*9*10" , "s16 Center vCenter Bold c" Brush " x51 y71" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "*1*2*3*4*5*6*7*8*9*10" , "s16 Center vCenter Bold c" Brush " x50 y71" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "*1*2*3*4*5*6*7*8*9*10" , "s16 Center vCenter Bold c" Brush " x50 y72" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "*1*2*3*4*5*6*7*8*9*10" , "s16 Center vCenter Bold c" Brush " x51 y72" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "*1*2*3*4*5*6*7*8*9*10" , "s16 Center vCenter Bold c" Brush " x52 y72" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "*1*2*3*4*5*6*7*8*9*10" , "s16 Center vCenter Bold c" Brush " x51 y71" , "Segoe UI" , 298 , 30 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF333333" )
	Gdip_FillRectangle( G , Brush , 20 , 106 , 360 , 304 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawRectangle( G , Pen , 20 , 106 , 360 , 304 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 20 , 106 , 379 , 106 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 20 , 106 , 20 , 409 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF7000AC" , 3 )
	Gdip_DrawLine( G , Pen , 41 , 136 , 359 , 136 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF7000AC" , 3 )
	Gdip_DrawLine( G , Pen , 41 , 166 , 359 , 166 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF7000AC" , 3 )
	Gdip_DrawLine( G , Pen , 41 , 196 , 359 , 196 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF7000AC" , 3 )
	Gdip_DrawLine( G , Pen , 41 , 226 , 359 , 226 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF7000AC" , 3 )
	Gdip_DrawLine( G , Pen , 41 , 256 , 359 , 256 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF7000AC" , 3 )
	Gdip_DrawLine( G , Pen , 41 , 286 , 359 , 286 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF7000AC" , 3 )
	Gdip_DrawLine( G , Pen , 41 , 316 , 359 , 316 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF7000AC" , 3 )
	Gdip_DrawLine( G , Pen , 41 , 346 , 359 , 346 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 41 , 346 , 359 , 346 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 41 , 316 , 359 , 316 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 41 , 286 , 359 , 286 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 41 , 256 , 359 , 256 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 41 , 226 , 359 , 226 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 41 , 196 , 359 , 196 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 41 , 166 , 359 , 166 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 41 , 136 , 359 , 136 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF7000AC" , 3 )
	Gdip_DrawLine( G , Pen , 41 , 376 , 359 , 376 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 41 , 376 , 359 , 376 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*1*" , "s16 Center vCenter Bold c" Brush " x-7 y98" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*1*" , "s16 Center vCenter Bold c" Brush " x-5 y98" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*1*" , "s16 Center vCenter Bold c" Brush " x-5 y100" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*1*" , "s16 Center vCenter Bold c" Brush " x-7 y100" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "*1*" , "s16 Center vCenter Bold c" Brush " x-6 y99" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*2*" , "s16 Center vCenter Bold c" Brush " x-7 y128" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*2*" , "s16 Center vCenter Bold c" Brush " x-5 y128" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*2*" , "s16 Center vCenter Bold c" Brush " x-5 y130" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*2*" , "s16 Center vCenter Bold c" Brush " x-7 y130" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "*2*" , "s16 Center vCenter Bold c" Brush " x-6 y129" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*3*" , "s16 Center vCenter Bold c" Brush " x-7 y158" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*3*" , "s16 Center vCenter Bold c" Brush " x-5 y158" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*3*" , "s16 Center vCenter Bold c" Brush " x-5 y160" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*3*" , "s16 Center vCenter Bold c" Brush " x-7 y160" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "*3*" , "s16 Center vCenter Bold c" Brush " x-6 y159" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*4*" , "s16 Center vCenter Bold c" Brush " x-7 y188" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*4*" , "s16 Center vCenter Bold c" Brush " x-5 y188" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*4*" , "s16 Center vCenter Bold c" Brush " x-5 y190" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*4*" , "s16 Center vCenter Bold c" Brush " x-7 y190" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "*4*" , "s16 Center vCenter Bold c" Brush " x-6 y189" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*5*" , "s16 Center vCenter Bold c" Brush " x-7 y218" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*5*" , "s16 Center vCenter Bold c" Brush " x-5 y218" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*5*" , "s16 Center vCenter Bold c" Brush " x-5 y220" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*5*" , "s16 Center vCenter Bold c" Brush " x-7 y220" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "*5*" , "s16 Center vCenter Bold c" Brush " x-6 y219" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*6*" , "s16 Center vCenter Bold c" Brush " x-7 y248" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*6*" , "s16 Center vCenter Bold c" Brush " x-5 y248" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*6*" , "s16 Center vCenter Bold c" Brush " x-5 y250" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*6*" , "s16 Center vCenter Bold c" Brush " x-7 y250" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "*6*" , "s16 Center vCenter Bold c" Brush " x-6 y249" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*7*" , "s16 Center vCenter Bold c" Brush " x-7 y278" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*7*" , "s16 Center vCenter Bold c" Brush " x-5 y278" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*7*" , "s16 Center vCenter Bold c" Brush " x-5 y280" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*7*" , "s16 Center vCenter Bold c" Brush " x-7 y280" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "*7*" , "s16 Center vCenter Bold c" Brush " x-6 y279" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*8*" , "s16 Center vCenter Bold c" Brush " x-7 y308" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*8*" , "s16 Center vCenter Bold c" Brush " x-5 y308" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*8*" , "s16 Center vCenter Bold c" Brush " x-5 y310" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*8*" , "s16 Center vCenter Bold c" Brush " x-7 y310" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "*8*" , "s16 Center vCenter Bold c" Brush " x-6 y309" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*9*" , "s16 Center vCenter Bold c" Brush " x-7 y338" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*9*" , "s16 Center vCenter Bold c" Brush " x-5 y338" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*9*" , "s16 Center vCenter Bold c" Brush " x-5 y340" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*9*" , "s16 Center vCenter Bold c" Brush " x-7 y340" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "*9*" , "s16 Center vCenter Bold c" Brush " x-6 y339" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*10" , "s16 Center vCenter Bold c" Brush " x-7 y368" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*10" , "s16 Center vCenter Bold c" Brush " x-5 y368" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*10" , "s16 Center vCenter Bold c" Brush " x-5 y370" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "*10" , "s16 Center vCenter Bold c" Brush " x-7 y370" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "*10" , "s16 Center vCenter Bold c" Brush " x-6 y369" , "Arial" , 90 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Turn On/Off Search Loop ( 1: Loop , 0: Find Once )" , "s12  vCenter Bold c" Brush " x69 y97" , "Arial" , 300 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Turn On/Off Search Loop ( 1: Loop , 0: Find Once )" , "s12  vCenter Bold c" Brush " x70 y98" , "Arial" , 300 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Click or Move ( 0: Move , 1: Click )" , "s12  vCenter Bold c" Brush " x69 y127" , "Arial" , 300 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Click or Move ( 0: Move , 1: Click )" , "s12  vCenter Bold c" Brush " x70 y128" , "Arial" , 300 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Number of Clicks Per Loop (Range: 1+)(*See Below)" , "s12  vCenter Bold c" Brush " x69 y157" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Number of Clicks Per Loop (Range: 1+)(*See Below)" , "s12  vCenter Bold c" Brush " x70 y158" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "X-Offset (Click & Move)" , "s12  vCenter Bold c" Brush " x69 y187" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "X-Offset (Click & Move)" , "s12  vCenter Bold c" Brush " x70 y188" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Y-Offset (Click & Move)" , "s12  vCenter Bold c" Brush " x69 y217" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Y-Offset (Click & Move)" , "s12  vCenter Bold c" Brush " x70 y218" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Which Mouse Button to use  (Values: L , M , R )" , "s12  vCenter Bold c" Brush " x69 y247" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Which Mouse Button to use  (Values: L , M , R )" , "s12  vCenter Bold c" Brush " x70 y248" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Amount of time a click is held (in ms)" , "s12  vCenter Bold c" Brush " x69 y277" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Amount of time a click is held (in ms)" , "s12  vCenter Bold c" Brush " x70 y278" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Amount of time between key strokes (in ms)" , "s12  vCenter Bold c" Brush " x69 y307" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Amount of time between key strokes (in ms)" , "s12  vCenter Bold c" Brush " x70 y308" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Loop Delay (Delay between Search Loops (in ms))" , "s12  vCenter Bold c" Brush " x69 y337" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Loop Delay (Delay between Search Loops (in ms))" , "s12  vCenter Bold c" Brush " x70 y338" , "Arial" , 330 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Commands to ""send"" (e.g. {Enter} r) See Documentation For List of values" , "s12  vCenter Bold c" Brush " x69 y370" , "Arial" , 240 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Commands to ""send"" (e.g. {Enter} r) See Documentation For List of values" , "s12  vCenter Bold c" Brush " x70 y371" , "Arial" , 240 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Set *2*3* both to a value of 0 to disable Click and Move" , "s12  vCenter Bold c" Brush " x31 y400" , "Arial" , 400 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Set *2*3* both to a value of 0 to disable Click and Move" , "s12  vCenter Bold c" Brush " x33 y400" , "Arial" , 400 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Set *2*3* both to a value of 0 to disable Click and Move" , "s12  vCenter Bold c" Brush " x33 y402" , "Arial" , 400 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Set *2*3* both to a value of 0 to disable Click and Move" , "s12  vCenter Bold c" Brush " x31 y402" , "Arial" , 400 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFff0000" )
	Gdip_TextToGraphics( G , "Set *2*3* both to a value of 0 to disable Click and Move" , "s12  vCenter Bold c" Brush " x32 y401" , "Arial" , 400 , 50 )
	Gdip_DeleteBrush( Brush )
	Gdip_DeleteGraphics( G )
	return pBitmap
}
HotkeyWindow(){
	;Bitmap Created Using: HB Bitmap Maker
	pBitmap:=Gdip_CreateBitmap( 300 , 250 ) 
	 G := Gdip_GraphicsFromImage( pBitmap )
	Gdip_SetSmoothingMode( G , 4 )
	Brush := Gdip_CreateLineBrush( 19 , 15 , 52 , 59 , "0xFF22005D" , "0xFF111111" , 1 )
	Gdip_FillRectangle( G , Brush , -1 , -1 , 303 , 253 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF252525" )
	Gdip_FillRectangle( G , Brush , 10 , 40 , 279 , 200 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawRectangle( G , Pen , 0 , 0 , 299 , 249 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawRectangle( G , Pen , 10 , 40 , 279 , 200 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 299 , 0 , 299 , 249 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawLine( G , Pen , 0 , 249 , 299 , 249 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 289 , 40 , 289 , 239 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 11 , 240 , 289 , 240 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 2 )
	Gdip_DrawRectangle( G , Pen , 50 , 6 , 199 , 25 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF000000" , 2 )
	Gdip_DrawRectangle( G , Pen , 51 , 7 , 199 , 25 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_CreateLineBrush( 74 , 15 , 86 , 39 , "0xFF7100AD" , "0xFF000000" , 1 )
	Gdip_FillRectangle( G , Brush , 50 , 6 , 200 , 26 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Hotkeys & Info" , "s16 Center vCenter Bold c" Brush " x49 y-5" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Hotkeys & Info" , "s16 Center vCenter Bold c" Brush " x50 y-5" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Hotkeys & Info" , "s16 Center vCenter Bold c" Brush " x51 y-5" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Hotkeys & Info" , "s16 Center vCenter Bold c" Brush " x51 y-4" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Hotkeys & Info" , "s16 Center vCenter Bold c" Brush " x50 y-4" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Hotkeys & Info" , "s16 Center vCenter Bold c" Brush " x49 y-4" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Hotkeys & Info" , "s16 Center vCenter Bold c" Brush " x49 y-3" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Hotkeys & Info" , "s16 Center vCenter Bold c" Brush " x50 y-3" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Hotkeys & Info" , "s16 Center vCenter Bold c" Brush " x51 y-3" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "Hotkeys & Info" , "s16 Center vCenter Bold c" Brush " x50 y-4" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF333333" )
	Gdip_FillRectangle( G , Brush , 15 , 45 , 270 , 70 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Info" , "s12 Center vCenter Bold c" Brush " x49 y32" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Info" , "s12 Center vCenter Bold c" Brush " x51 y32" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Info" , "s12 Center vCenter Bold c" Brush " x51 y34" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFF0F0F0" )
	Gdip_TextToGraphics( G , "Info" , "s12 Center vCenter Bold c" Brush " x49 y34" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Info" , "s12 Center vCenter Bold c" Brush " x50 y33" , "Arial" , 200 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Written By:           Hellbent aka CivReborn" , "s10  vCenter Bold c" Brush " x48 y48" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFffffff" )
	Gdip_TextToGraphics( G , "Written By:           Hellbent aka CivReborn" , "s10  vCenter Bold c" Brush " x50 y50" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "Date:                     June 3rd, 2019" , "s10  vCenter Bold c" Brush " x48 y63" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFffffff" )
	Gdip_TextToGraphics( G , "Date:                     June 3rd, 2019" , "s10  vCenter Bold c" Brush " x50 y65" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF000000" )
	Gdip_TextToGraphics( G , "All Rights Reserved" , "s10  vCenter Bold c" Brush " x108 y80" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFFffffff" )
	Gdip_TextToGraphics( G , "All Rights Reserved" , "s10  vCenter Bold c" Brush " x110 y82" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawRectangle( G , Pen , 15 , 45 , 270 , 70 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 15 , 45 , 15 , 114 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 15 , 45 , 284 , 45 )
	Gdip_DeletePen( Pen )
	Brush := Gdip_BrushCreateSolid( "0xFF333333" )
	Gdip_FillRectangle( G , Brush , 15 , 120 , 270 , 70 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Start:" , "s12  vCenter Bold c" Brush " x19 y111" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Start:" , "s12  vCenter Bold c" Brush " x21 y111" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Start:" , "s12  vCenter Bold c" Brush " x21 y113" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Start:" , "s12  vCenter Bold c" Brush " x19 y113" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "Start:" , "s12  vCenter Bold c" Brush " x20 y112" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Stop:" , "s12  vCenter Bold c" Brush " x19 y146" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Stop:" , "s12  vCenter Bold c" Brush " x21 y146" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Stop:" , "s12  vCenter Bold c" Brush " x21 y148" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF7000AC" )
	Gdip_TextToGraphics( G , "Stop:" , "s12  vCenter Bold c" Brush " x19 y148" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Brush := Gdip_BrushCreateSolid( "0xFF999999" )
	Gdip_TextToGraphics( G , "Stop:" , "s12  vCenter Bold c" Brush " x20 y147" , "Arial" , 250 , 50 )
	Gdip_DeleteBrush( Brush )
	Pen := Gdip_CreatePen( "0xFF000000" , 1 )
	Gdip_DrawRectangle( G , Pen , 15 , 120 , 270 , 70 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 15 , 120 , 15 , 189 )
	Gdip_DeletePen( Pen )
	Pen := Gdip_CreatePen( "0xFF777777" , 1 )
	Gdip_DrawLine( G , Pen , 15 , 120 , 284 , 120 )
	Gdip_DeletePen( Pen )
	Gdip_DeleteGraphics( G )
	return pBitmap
}
New_Brush(colour:="000000",Alpha:="FF"){
	new_colour := "0x" Alpha colour 
	DllCall("gdiplus\GdipCreateSolidFill", "UInt", new_colour, A_PtrSize ? "UPtr*" : "UInt*", pBrush)
	return pBrush
}
Gdip_GraphicsClear(pGraphics, ARGB=0x00ffffff){
    return DllCall("gdiplus\GdipGraphicsClear", A_PtrSize ? "UPtr" : "UInt", pGraphics, "int", ARGB)
}
Fill_Box(pGraphics,pBrush,x,y,w,h)	{
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipFillRectangle", Ptr, pGraphics, Ptr, pBrush, "float", x, "float", y, "float", w, "float", h)
}
UpdateLayeredWindow(hwnd, hdc, x="", y="", w="", h="", Alpha=255){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	if ((x != "") && (y != ""))
		VarSetCapacity(pt, 8), NumPut(x, pt, 0, "UInt"), NumPut(y, pt, 4, "UInt")
	if (w = "") ||(h = "")
		WinGetPos,,, w, h, ahk_id %hwnd%
	return DllCall("UpdateLayeredWindow", Ptr, hwnd, Ptr, 0, Ptr, ((x = "") && (y = "")) ? 0 : &pt, "int64*", w|h<<32, Ptr, hdc, "int64*", 0, "uint", 0, "UInt*", Alpha<<16|1<<24, "uint", 2)
}
BitBlt(ddc, dx, dy, dw, dh, sdc, sx, sy, Raster=""){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdi32\BitBlt", Ptr, dDC, "int", dx, "int", dy, "int", dw, "int", dh, Ptr, sDC, "int", sx, "int", sy, "uint", Raster ? Raster : 0x00CC0020)
}
Gdip_DrawImage(pGraphics, pBitmap, dx="", dy="", dw="", dh="", sx="", sy="", sw="", sh="", Matrix=1){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	if (Matrix&1 = "")
		ImageAttr := Gdip_SetImageAttributesColorMatrix(Matrix)
	else if (Matrix != 1)
		ImageAttr := Gdip_SetImageAttributesColorMatrix("1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|" Matrix "|0|0|0|0|0|1")
	if(sx = "" && sy = "" && sw = "" && sh = ""){
		if(dx = "" && dy = "" && dw = "" && dh = ""){
			sx := dx := 0, sy := dy := 0
			sw := dw := Gdip_GetImageWidth(pBitmap)
			sh := dh := Gdip_GetImageHeight(pBitmap)
		}else	{
			sx := sy := 0,sw := Gdip_GetImageWidth(pBitmap),sh := Gdip_GetImageHeight(pBitmap)
		}
	}
	E := DllCall("gdiplus\GdipDrawImageRectRect", Ptr, pGraphics, Ptr, pBitmap, "float", dx, "float", dy, "float", dw, "float", dh, "float", sx, "float", sy, "float", sw, "float", sh, "int", 2, Ptr, ImageAttr, Ptr, 0, Ptr, 0)
	if ImageAttr
		Gdip_DisposeImageAttributes(ImageAttr)
	return E
}
Gdip_SetImageAttributesColorMatrix(Matrix){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	VarSetCapacity(ColourMatrix, 100, 0)
	Matrix := RegExReplace(RegExReplace(Matrix, "^[^\d-\.]+([\d\.])", "$1", "", 1), "[^\d-\.]+", "|")
	StringSplit, Matrix, Matrix, |
	Loop, 25
	{
		Matrix := (Matrix%A_Index% != "") ? Matrix%A_Index% : Mod(A_Index-1, 6) ? 0 : 1
		NumPut(Matrix, ColourMatrix, (A_Index-1)*4, "float")
	}
	DllCall("gdiplus\GdipCreateImageAttributes", A_PtrSize ? "UPtr*" : "uint*", ImageAttr)
	DllCall("gdiplus\GdipSetImageAttributesColorMatrix", Ptr, ImageAttr, "int", 1, "int", 1, Ptr, &ColourMatrix, Ptr, 0, "int", 0)
	return ImageAttr
}
Gdip_GetImageWidth(pBitmap){
   DllCall("gdiplus\GdipGetImageWidth", A_PtrSize ? "UPtr" : "UInt", pBitmap, "uint*", Width)
   return Width
}
Gdip_GetImageHeight(pBitmap){
   DllCall("gdiplus\GdipGetImageHeight", A_PtrSize ? "UPtr" : "UInt", pBitmap, "uint*", Height)
   return Height
}
Gdip_DeletePen(pPen){
   return DllCall("gdiplus\GdipDeletePen", A_PtrSize ? "UPtr" : "UInt", pPen)
}
Gdip_DeleteBrush(pBrush){
   return DllCall("gdiplus\GdipDeleteBrush", A_PtrSize ? "UPtr" : "UInt", pBrush)
}
Gdip_DisposeImage(pBitmap){
   return DllCall("gdiplus\GdipDisposeImage", A_PtrSize ? "UPtr" : "UInt", pBitmap)
}
Gdip_DeleteGraphics(pGraphics){
   return DllCall("gdiplus\GdipDeleteGraphics", A_PtrSize ? "UPtr" : "UInt", pGraphics)
}
Gdip_DisposeImageAttributes(ImageAttr){
	return DllCall("gdiplus\GdipDisposeImageAttributes", A_PtrSize ? "UPtr" : "UInt", ImageAttr)
}
Gdip_DeleteFont(hFont){
   return DllCall("gdiplus\GdipDeleteFont", A_PtrSize ? "UPtr" : "UInt", hFont)
}
Gdip_DeleteStringFormat(hFormat){
   return DllCall("gdiplus\GdipDeleteStringFormat", A_PtrSize ? "UPtr" : "UInt", hFormat)
}
Gdip_DeleteFontFamily(hFamily){
   return DllCall("gdiplus\GdipDeleteFontFamily", A_PtrSize ? "UPtr" : "UInt", hFamily)
}
CreateCompatibleDC(hdc=0){
   return DllCall("CreateCompatibleDC", A_PtrSize ? "UPtr" : "UInt", hdc)
}
SelectObject(hdc, hgdiobj){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("SelectObject", Ptr, hdc, Ptr, hgdiobj)
}
DeleteObject(hObject){
   return DllCall("DeleteObject", A_PtrSize ? "UPtr" : "UInt", hObject)
}
GetDC(hwnd=0){
	return DllCall("GetDC", A_PtrSize ? "UPtr" : "UInt", hwnd)
}
GetDCEx(hwnd, flags=0, hrgnClip=0){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
    return DllCall("GetDCEx", Ptr, hwnd, Ptr, hrgnClip, "int", flags)
}
ReleaseDC(hdc, hwnd=0){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("ReleaseDC", Ptr, hwnd, Ptr, hdc)
}
DeleteDC(hdc){
   return DllCall("DeleteDC", A_PtrSize ? "UPtr" : "UInt", hdc)
}
Gdip_SetClipRegion(pGraphics, Region, CombineMode=0){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipSetClipRegion", Ptr, pGraphics, Ptr, Region, "int", CombineMode)
}
CreateDIBSection(w, h, hdc="", bpp=32, ByRef ppvBits=0){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	hdc2 := hdc ? hdc : GetDC()
	VarSetCapacity(bi, 40, 0)
	NumPut(w, bi, 4, "uint"), NumPut(h, bi, 8, "uint"), NumPut(40, bi, 0, "uint"), NumPut(1, bi, 12, "ushort"), NumPut(0, bi, 16, "uInt"), NumPut(bpp, bi, 14, "ushort")
	hbm := DllCall("CreateDIBSection", Ptr, hdc2, Ptr, &bi, "uint", 0, A_PtrSize ? "UPtr*" : "uint*", ppvBits, Ptr, 0, "uint", 0, Ptr)
	if !hdc
		ReleaseDC(hdc2)
	return hbm
}
Gdip_GraphicsFromImage(pBitmap){
	DllCall("gdiplus\GdipGetImageGraphicsContext", A_PtrSize ? "UPtr" : "UInt", pBitmap, A_PtrSize ? "UPtr*" : "UInt*", pGraphics)
	return pGraphics
}
Gdip_GraphicsFromHDC(hdc){
    DllCall("gdiplus\GdipCreateFromHDC", A_PtrSize ? "UPtr" : "UInt", hdc, A_PtrSize ? "UPtr*" : "UInt*", pGraphics)
    return pGraphics
}
Gdip_GetDC(pGraphics){
	DllCall("gdiplus\GdipGetDC", A_PtrSize ? "UPtr" : "UInt", pGraphics, A_PtrSize ? "UPtr*" : "UInt*", hdc)
	return hdc
}
Gdip_Startup(){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	if !DllCall("GetModuleHandle", "str", "gdiplus", Ptr)
		DllCall("LoadLibrary", "str", "gdiplus")
	VarSetCapacity(si, A_PtrSize = 8 ? 24 : 16, 0), si := Chr(1)
	DllCall("gdiplus\GdiplusStartup", A_PtrSize ? "UPtr*" : "uint*", pToken, Ptr, &si, Ptr, 0)
	return pToken
}
Gdip_TextToGraphics(pGraphics, Text, Options, Font="Arial", Width="", Height="", Measure=0){
	IWidth := Width, IHeight:= Height
	RegExMatch(Options, "i)X([\-\d\.]+)(p*)", xpos)
	RegExMatch(Options, "i)Y([\-\d\.]+)(p*)", ypos)
	RegExMatch(Options, "i)W([\-\d\.]+)(p*)", Width)
	RegExMatch(Options, "i)H([\-\d\.]+)(p*)", Height)
	RegExMatch(Options, "i)C(?!(entre|enter))([a-f\d]+)", Colour)
	RegExMatch(Options, "i)Top|Up|Bottom|Down|vCentre|vCenter", vPos)
	RegExMatch(Options, "i)NoWrap", NoWrap)
	RegExMatch(Options, "i)R(\d)", Rendering)
	RegExMatch(Options, "i)S(\d+)(p*)", Size)
	if !Gdip_DeleteBrush(Gdip_CloneBrush(Colour2))
		PassBrush := 1, pBrush := Colour2
	if !(IWidth && IHeight) && (xpos2 || ypos2 || Width2 || Height2 || Size2)
		return -1
	Style := 0, Styles := "Regular|Bold|Italic|BoldItalic|Underline|Strikeout"
	Loop, Parse, Styles, |
	{
		if RegExMatch(Options, "\b" A_loopField)
		Style |= (A_LoopField != "StrikeOut") ? (A_Index-1) : 8
	}
	Align := 0, Alignments := "Near|Left|Centre|Center|Far|Right"
	Loop, Parse, Alignments, |
	{
		if RegExMatch(Options, "\b" A_loopField)
			Align |= A_Index//2.1      ; 0|0|1|1|2|2
	}
	xpos := (xpos1 != "") ? xpos2 ? IWidth*(xpos1/100) : xpos1 : 0
	ypos := (ypos1 != "") ? ypos2 ? IHeight*(ypos1/100) : ypos1 : 0
	Width := Width1 ? Width2 ? IWidth*(Width1/100) : Width1 : IWidth
	Height := Height1 ? Height2 ? IHeight*(Height1/100) : Height1 : IHeight
	if !PassBrush
		Colour := "0x" (Colour2 ? Colour2 : "ff000000")
	Rendering := ((Rendering1 >= 0) && (Rendering1 <= 5)) ? Rendering1 : 4
	Size := (Size1 > 0) ? Size2 ? IHeight*(Size1/100) : Size1 : 12
	hFamily := Gdip_FontFamilyCreate(Font)
	hFont := Gdip_FontCreate(hFamily, Size, Style)
	FormatStyle := NoWrap ? 0x4000 | 0x1000 : 0x4000
	hFormat := Gdip_StringFormatCreate(FormatStyle)
	pBrush := PassBrush ? pBrush : Gdip_BrushCreateSolid(Colour)
	if !(hFamily && hFont && hFormat && pBrush && pGraphics)
		return !pGraphics ? -2 : !hFamily ? -3 : !hFont ? -4 : !hFormat ? -5 : !pBrush ? -6 : 0
	CreateRectF(RC, xpos, ypos, Width, Height)
	Gdip_SetStringFormatAlign(hFormat, Align)
	Gdip_SetTextRenderingHint(pGraphics, Rendering)
	ReturnRC := Gdip_MeasureString(pGraphics, Text, hFont, hFormat, RC)
	if vPos
	{
		StringSplit, ReturnRC, ReturnRC, |
		if (vPos = "vCentre") || (vPos = "vCenter")
			ypos += (Height-ReturnRC4)//2
		else if (vPos = "Top") || (vPos = "Up")
			ypos := 0
		else if (vPos = "Bottom") || (vPos = "Down")
			ypos := Height-ReturnRC4
		CreateRectF(RC, xpos, ypos, Width, ReturnRC4)
		ReturnRC := Gdip_MeasureString(pGraphics, Text, hFont, hFormat, RC)
	}
	if !Measure
		E := Gdip_DrawString(pGraphics, Text, hFont, hFormat, pBrush, RC)
	if !PassBrush
		Gdip_DeleteBrush(pBrush)
	Gdip_DeleteStringFormat(hFormat)
	Gdip_DeleteFont(hFont)
	Gdip_DeleteFontFamily(hFamily)
	return E ? E : ReturnRC
}
Gdip_DrawString(pGraphics, sString, hFont, hFormat, pBrush, ByRef RectF){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	if (!A_IsUnicode)
	{
		nSize := DllCall("MultiByteToWideChar", "uint", 0, "uint", 0, Ptr, &sString, "int", -1, Ptr, 0, "int", 0)
		VarSetCapacity(wString, nSize*2)
		DllCall("MultiByteToWideChar", "uint", 0, "uint", 0, Ptr, &sString, "int", -1, Ptr, &wString, "int", nSize)
	}
	return DllCall("gdiplus\GdipDrawString", Ptr, pGraphics, Ptr, A_IsUnicode ? &sString : &wString, "int", -1, Ptr, hFont, Ptr, &RectF, Ptr, hFormat, Ptr, pBrush)
}
Gdip_CreateLineBrush(x1, y1, x2, y2, ARGB1, ARGB2, WrapMode=1){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	CreatePointF(PointF1, x1, y1), CreatePointF(PointF2, x2, y2)
	DllCall("gdiplus\GdipCreateLineBrush", Ptr, &PointF1, Ptr, &PointF2, "Uint", ARGB1, "Uint", ARGB2, "int", WrapMode, A_PtrSize ? "UPtr*" : "UInt*", LGpBrush)
	return LGpBrush
}
Gdip_CreateLineBrushFromRect(x, y, w, h, ARGB1, ARGB2, LinearGradientMode=1, WrapMode=1){
	CreateRectF(RectF, x, y, w, h)
	DllCall("gdiplus\GdipCreateLineBrushFromRect", A_PtrSize ? "UPtr" : "UInt", &RectF, "int", ARGB1, "int", ARGB2, "int", LinearGradientMode, "int", WrapMode, A_PtrSize ? "UPtr*" : "UInt*", LGpBrush)
	return LGpBrush
}
Gdip_CloneBrush(pBrush){
	DllCall("gdiplus\GdipCloneBrush", A_PtrSize ? "UPtr" : "UInt", pBrush, A_PtrSize ? "UPtr*" : "UInt*", pBrushClone)
	return pBrushClone
}
Gdip_FontFamilyCreate(Font){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	if (!A_IsUnicode)
	{
		nSize := DllCall("MultiByteToWideChar", "uint", 0, "uint", 0, Ptr, &Font, "int", -1, "uint", 0, "int", 0)
		VarSetCapacity(wFont, nSize*2)
		DllCall("MultiByteToWideChar", "uint", 0, "uint", 0, Ptr, &Font, "int", -1, Ptr, &wFont, "int", nSize)
	}
	DllCall("gdiplus\GdipCreateFontFamilyFromName", Ptr, A_IsUnicode ? &Font : &wFont, "uint", 0, A_PtrSize ? "UPtr*" : "UInt*", hFamily)
	return hFamily
}
Gdip_SetStringFormatAlign(hFormat, Align){
   return DllCall("gdiplus\GdipSetStringFormatAlign", A_PtrSize ? "UPtr" : "UInt", hFormat, "int", Align)
}
Gdip_StringFormatCreate(Format=0, Lang=0){
   DllCall("gdiplus\GdipCreateStringFormat", "int", Format, "int", Lang, A_PtrSize ? "UPtr*" : "UInt*", hFormat)
   return hFormat
}
Gdip_FontCreate(hFamily, Size, Style=0){
   DllCall("gdiplus\GdipCreateFont", A_PtrSize ? "UPtr" : "UInt", hFamily, "float", Size, "int", Style, "int", 0, A_PtrSize ? "UPtr*" : "UInt*", hFont)
   return hFont
}
Gdip_CreatePen(ARGB, w){
   DllCall("gdiplus\GdipCreatePen1", "UInt", ARGB, "float", w, "int", 2, A_PtrSize ? "UPtr*" : "UInt*", pPen)
   return pPen
}
Gdip_CreatePenFromBrush(pBrush, w){
	DllCall("gdiplus\GdipCreatePen2", A_PtrSize ? "UPtr" : "UInt", pBrush, "float", w, "int", 2, A_PtrSize ? "UPtr*" : "UInt*", pPen)
	return pPen
}
Gdip_BrushCreateSolid(ARGB=0xff000000){
	DllCall("gdiplus\GdipCreateSolidFill", "UInt", ARGB, A_PtrSize ? "UPtr*" : "UInt*", pBrush)
	return pBrush
}
Gdip_BrushCreateHatch(ARGBfront, ARGBback, HatchStyle=0){
	DllCall("gdiplus\GdipCreateHatchBrush", "int", HatchStyle, "UInt", ARGBfront, "UInt", ARGBback, A_PtrSize ? "UPtr*" : "UInt*", pBrush)
	return pBrush
}
CreateRectF(ByRef RectF, x, y, w, h){
   VarSetCapacity(RectF, 16)
   NumPut(x, RectF, 0, "float"), NumPut(y, RectF, 4, "float"), NumPut(w, RectF, 8, "float"), NumPut(h, RectF, 12, "float")
}
Gdip_SetTextRenderingHint(pGraphics, RenderingHint){
	return DllCall("gdiplus\GdipSetTextRenderingHint", A_PtrSize ? "UPtr" : "UInt", pGraphics, "int", RenderingHint)
}
Gdip_MeasureString(pGraphics, sString, hFont, hFormat, ByRef RectF){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	VarSetCapacity(RC, 16)
	if !A_IsUnicode
	{
		nSize := DllCall("MultiByteToWideChar", "uint", 0, "uint", 0, Ptr, &sString, "int", -1, "uint", 0, "int", 0)
		VarSetCapacity(wString, nSize*2)
		DllCall("MultiByteToWideChar", "uint", 0, "uint", 0, Ptr, &sString, "int", -1, Ptr, &wString, "int", nSize)
	}
	DllCall("gdiplus\GdipMeasureString", Ptr, pGraphics, Ptr, A_IsUnicode ? &sString : &wString, "int", -1, Ptr, hFont, Ptr, &RectF, Ptr, hFormat, Ptr, &RC, "uint*", Chars, "uint*", Lines)
	return &RC ? NumGet(RC, 0, "float") "|" NumGet(RC, 4, "float") "|" NumGet(RC, 8, "float") "|" NumGet(RC, 12, "float") "|" Chars "|" Lines : 0
}
CreateRect(ByRef Rect, x, y, w, h){
	VarSetCapacity(Rect, 16)
	NumPut(x, Rect, 0, "uint"), NumPut(y, Rect, 4, "uint"), NumPut(w, Rect, 8, "uint"), NumPut(h, Rect, 12, "uint")
}
CreateSizeF(ByRef SizeF, w, h){
   VarSetCapacity(SizeF, 8)
   NumPut(w, SizeF, 0, "float"), NumPut(h, SizeF, 4, "float")
}
CreatePointF(ByRef PointF, x, y){
   VarSetCapacity(PointF, 8)
   NumPut(x, PointF, 0, "float"), NumPut(y, PointF, 4, "float")
}
Gdip_DrawArc(pGraphics, pPen, x, y, w, h, StartAngle, SweepAngle){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipDrawArc", Ptr, pGraphics, Ptr, pPen, "float", x, "float", y, "float", w, "float", h, "float", StartAngle, "float", SweepAngle)
}
Gdip_DrawPie(pGraphics, pPen, x, y, w, h, StartAngle, SweepAngle){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipDrawPie", Ptr, pGraphics, Ptr, pPen, "float", x, "float", y, "float", w, "float", h, "float", StartAngle, "float", SweepAngle)
}
Gdip_DrawLine(pGraphics, pPen, x1, y1, x2, y2){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipDrawLine", Ptr, pGraphics, Ptr, pPen, "float", x1, "float", y1, "float", x2, "float", y2)
}
Gdip_DrawLines(pGraphics, pPen, Points){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	StringSplit, Points, Points, |
	VarSetCapacity(PointF, 8*Points0)
	Loop, %Points0%
	{
		StringSplit, Coord, Points%A_Index%, `,
		NumPut(Coord1, PointF, 8*(A_Index-1), "float"), NumPut(Coord2, PointF, (8*(A_Index-1))+4, "float")
	}
	return DllCall("gdiplus\GdipDrawLines", Ptr, pGraphics, Ptr, pPen, Ptr, &PointF, "int", Points0)
}
Gdip_FillRectangle(pGraphics, pBrush, x, y, w, h){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipFillRectangle", Ptr, pGraphics, Ptr, pBrush, "float", x, "float", y, "float", w, "float", h)
}
Gdip_FillRoundedRectangle(pGraphics, pBrush, x, y, w, h, r){
	Region := Gdip_GetClipRegion(pGraphics)
	Gdip_SetClipRect(pGraphics, x-r, y-r, 2*r, 2*r, 4)
	Gdip_SetClipRect(pGraphics, x+w-r, y-r, 2*r, 2*r, 4)
	Gdip_SetClipRect(pGraphics, x-r, y+h-r, 2*r, 2*r, 4)
	Gdip_SetClipRect(pGraphics, x+w-r, y+h-r, 2*r, 2*r, 4)
	E := Gdip_FillRectangle(pGraphics, pBrush, x, y, w, h)
	Gdip_SetClipRegion(pGraphics, Region, 0)
	Gdip_SetClipRect(pGraphics, x-(2*r), y+r, w+(4*r), h-(2*r), 4)
	Gdip_SetClipRect(pGraphics, x+r, y-(2*r), w-(2*r), h+(4*r), 4)
	Gdip_FillEllipse(pGraphics, pBrush, x, y, 2*r, 2*r)
	Gdip_FillEllipse(pGraphics, pBrush, x+w-(2*r), y, 2*r, 2*r)
	Gdip_FillEllipse(pGraphics, pBrush, x, y+h-(2*r), 2*r, 2*r)
	Gdip_FillEllipse(pGraphics, pBrush, x+w-(2*r), y+h-(2*r), 2*r, 2*r)
	Gdip_SetClipRegion(pGraphics, Region, 0)
	Gdip_DeleteRegion(Region)
	return E
}
Gdip_GetClipRegion(pGraphics){
	Region := Gdip_CreateRegion()
	DllCall("gdiplus\GdipGetClip", A_PtrSize ? "UPtr" : "UInt", pGraphics, "UInt*", Region)
	return Region
}
Gdip_SetClipRect(pGraphics, x, y, w, h, CombineMode=0){
   return DllCall("gdiplus\GdipSetClipRect",  A_PtrSize ? "UPtr" : "UInt", pGraphics, "float", x, "float", y, "float", w, "float", h, "int", CombineMode)
}
Gdip_SetClipPath(pGraphics, Path, CombineMode=0){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipSetClipPath", Ptr, pGraphics, Ptr, Path, "int", CombineMode)
}
Gdip_ResetClip(pGraphics){
   return DllCall("gdiplus\GdipResetClip", A_PtrSize ? "UPtr" : "UInt", pGraphics)
}
Gdip_FillEllipse(pGraphics, pBrush, x, y, w, h){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipFillEllipse", Ptr, pGraphics, Ptr, pBrush, "float", x, "float", y, "float", w, "float", h)
}
Gdip_FillRegion(pGraphics, pBrush, Region){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipFillRegion", Ptr, pGraphics, Ptr, pBrush, Ptr, Region)
}
Gdip_FillPath(pGraphics, pBrush, Path){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipFillPath", Ptr, pGraphics, Ptr, pBrush, Ptr, Path)
}
Gdip_CreateRegion(){
	DllCall("gdiplus\GdipCreateRegion", "UInt*", Region)
	return Region
}
Gdip_DeleteRegion(Region){
	return DllCall("gdiplus\GdipDeleteRegion", A_PtrSize ? "UPtr" : "UInt", Region)
}
Gdip_CreateBitmap(Width, Height, Format=0x26200A){
    DllCall("gdiplus\GdipCreateBitmapFromScan0", "int", Width, "int", Height, "int", 0, "int", Format, A_PtrSize ? "UPtr" : "UInt", 0, A_PtrSize ? "UPtr*" : "uint*", pBitmap)
    Return pBitmap
}
Gdip_SetSmoothingMode(pGraphics, SmoothingMode){
   return DllCall("gdiplus\GdipSetSmoothingMode", A_PtrSize ? "UPtr" : "UInt", pGraphics, "int", SmoothingMode)
}
Gdip_DrawRectangle(pGraphics, pPen, x, y, w, h){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipDrawRectangle", Ptr, pGraphics, Ptr, pPen, "float", x, "float", y, "float", w, "float", h)
}
Gdip_DrawRoundedRectangle(pGraphics, pPen, x, y, w, h, r){
	Gdip_SetClipRect(pGraphics, x-r, y-r, 2*r, 2*r, 4)
	Gdip_SetClipRect(pGraphics, x+w-r, y-r, 2*r, 2*r, 4)
	Gdip_SetClipRect(pGraphics, x-r, y+h-r, 2*r, 2*r, 4)
	Gdip_SetClipRect(pGraphics, x+w-r, y+h-r, 2*r, 2*r, 4)
	E := Gdip_DrawRectangle(pGraphics, pPen, x, y, w, h)
	Gdip_ResetClip(pGraphics)
	Gdip_SetClipRect(pGraphics, x-(2*r), y+r, w+(4*r), h-(2*r), 4)
	Gdip_SetClipRect(pGraphics, x+r, y-(2*r), w-(2*r), h+(4*r), 4)
	Gdip_DrawEllipse(pGraphics, pPen, x, y, 2*r, 2*r)
	Gdip_DrawEllipse(pGraphics, pPen, x+w-(2*r), y, 2*r, 2*r)
	Gdip_DrawEllipse(pGraphics, pPen, x, y+h-(2*r), 2*r, 2*r)
	Gdip_DrawEllipse(pGraphics, pPen, x+w-(2*r), y+h-(2*r), 2*r, 2*r)
	Gdip_ResetClip(pGraphics)
	return E
}
Gdip_DrawEllipse(pGraphics, pPen, x, y, w, h){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	return DllCall("gdiplus\GdipDrawEllipse", Ptr, pGraphics, Ptr, pPen, "float", x, "float", y, "float", w, "float", h)
}
Gdip_CreateHBITMAPFromBitmap(pBitmap, Background=0xffffffff){
	DllCall("gdiplus\GdipCreateHBITMAPFromBitmap", A_PtrSize ? "UPtr" : "UInt", pBitmap, A_PtrSize ? "UPtr*" : "uint*", hbm, "int", Background)
	return hbm
}
SetImage(hwnd, hBitmap){
	SendMessage, 0x172, 0x0, hBitmap,, ahk_id %hwnd%
	E := ErrorLevel
	DeleteObject(E)
	return E
}
Gdip_FillPolygon(pGraphics, pBrush, Points, FillMode=0){
	Ptr := A_PtrSize ? "UPtr" : "UInt"
	StringSplit, Points, Points, |
	VarSetCapacity(PointF, 8*Points0)
	Loop, %Points0%
	{
		StringSplit, Coord, Points%A_Index%, `,
		NumPut(Coord1, PointF, 8*(A_Index-1), "float"), NumPut(Coord2, PointF, (8*(A_Index-1))+4, "float")
	}
	return DllCall("gdiplus\GdipFillPolygon", Ptr, pGraphics, Ptr, pBrush, Ptr, &PointF, "int", Points0, "int", FillMode)
}
 
ПЕРЕВОД НА РУССКИЙ



Step 0.
Делаем свои иконки типо:
После того как вы сделали свои .png иконки их нужно конвертировать в .BLP (Придется прибегнуть к древнему исскуству гугления! (Гуглить BLP2PNG) 8) )

Step 1.

Теперь переименовываем иконки. Как? Идем на wowhead. (Или на любой другой ресурс содержащий названия иконок)
Теперь делаем так: https://i.imgur.com/GnfPL8c.png

Вы получили название иконки типо: ability_bullrush (spell_rush ИЛИ ability_mage_firestarter когда ты вроде делаешь что то для друида лол, это нормально джаст не парся))0 ).

После того как ты закончил и получил свой ability_bullrush.blp (ну и прочие иконки офк.) кидай их в wow/interface/icons (Папка icons не существует по дефолту её надо создать.)

Теперь, качаем любой ротационный аддон который показывает иконки (Bittensspellflash не подойдет xd). Я юзаю hekili чего и вам советую)0

Теперь немного кфг в игре:
  • Настраиваем аддон, располагаем иконку там где вам будет удобно.
  • В аддоне включаем\ставим\заставляем показывать только 1 иконку.
  • Спелы типо Звездопада, прыжка вара и пр. не поддерживаются. (Н-но поддерживаются если их можно кастануть через макрос /cast [@player] Смерть и разложение или /cast [@target] Смерть и разложение (Это работает для тех же дк с легиона и по актуал.)

p.s Офк ты можешь юзать клик мышкой через скрипт, но тогда тебе нужно по кд держать мыш на враге, согласись так себе да? xD

Step 2.

Качаем autohotkey. (Ahk)
Создаем пустой .ahk script.

Step 3.

Теперь делаем "PixelGetColor". Пример:

Code:
PixelGetColor, color, 983, 824, RGB
If (color = 0xE97FFF)
{
Send, {c down}
sleep 10
Send, {c up}
}
Что за ололо:

  1. Читаем: PixelGetColor - Syntax & Usage | AutoHotkey
  2. PixelGetColor ищет пиксель определенного цвета в указанной координате. (Офк он ищет ПИКСЕЛЬ один пиксель. Не квадрат из пикселей а 1)
  3. 983, 824 координата в окне вов (ИГРА т.е ОКНО должна быть активна в момент получения координаты!!) в которой он ищет пиксель.
  4. If (color = 0xHEXvalue). -- если 0xHEX значение RGB цвета\оттенка найдено в координате тогда отправить нажатие c подождать 10 Мсек отправить отжатие c.
  5. цвета найти можно тут Color Hex - ColorHexa.com или при помощи других ahk скриптов. (помни про активное окно)





Ок теперь когда у нас есть PixelGetColor, давай добавим остальные кнопки, вкл\выкл и пару других штук.


Изи путь для ленивых:


Code:
End::
loop
{
PixelGetColor, color, 983, 824, RGB
If (color = 0xE97FFF)
{
Send, {c down}
sleep 10
Send, {c up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0x00A2E7)
{
Send, {1 down}
sleep 10
Send, {1 up}
}
}
return
Окей чоза?: Жмешь клавишу End 1 раз, и он начинает бесконечный зацикленный поиск пикселей в указанной координате, ну и если hekili показывает абилку с цветом 0xE97FFF (потому что мы заменили дефолт иконки) ahk делает след. штуку -> нажал C \10msec ждать \отжал c <- ну и соответсвенно тоже самое происходить для других цветов\кнопок типо 0x00A2E7 которая кнопка 1.

Супер, круто, наруто, как теперь включить выключить эту дичь? о.О

Изи.

Просто добавь перед всем кодом:

Code:
^F1::exitapp
F1::Pause, toggle
ctrl+F1 - - закрывает скрипт. (Т.е сносит его процесс)
F1 - - Пауза\Продолжить (Aka вкл\выкл) (end только запускает и далее ничего не делает)

Мммм супра...супер, но эт самое у меня немного так совсем другие координаты окна, де мне их брать а!?

Делаем ahk script #2:

Code:
^z::  ; Control+Z получить данные из под курсора.
MouseGetPos, MouseX, MouseY
PixelGetColor, RGB, %MouseX%, %MouseY%
MsgBox Цвет под курсором: %RGB%.
MouseGetPos, xpos, ypos
MsgBox, Курсор находиться в координате X%xpos% Y%ypos%.
return
Этот скрипт показывает правильные координаты (упд 01.03 НО НЕ ЦВЕТ) ТОЛЬКО КОГДА ОКНО АКТИВНО ПРЕЖДЕ ЧЕМ ЖАТЬ ctrl+z РАЗВЕРНИ ИГРУ ИЛИ КЛИКНИ В НЕЙ КУДА-НИТЬ (1 сначала покажет цвет потом коорд.).

Ну супер, теперь давай добавим GUI напоминалку.

Как это сделать:

1. Перед "return" в конце добавь это:

Code:
O::
KeyWait, O
Gui, Add, Text,,    < Твой текст появиться тут это первая строка. >
Gui, Add, Text,,  
Gui, Add, Text,,  выше этой строки пустая строка.
Gui, Add, Text,,  Ты можешь писать тут как хочешь естественно после -> ,,
Gui, Add, Text,, Теперь ты можешь тут написать: Я забиндил спелл1 на клавишу 1 не забудь поставить бинды так же. (Полезно если ты кому-то хочешь это скинуть.)
gui, +alwaysontop
Gui, Show, NoActivate
KeyWait  O, D
Gui Destroy
Чоза?:

1. биндит клавишу O на создание GUI т.е O:: когда ты жмешь на O создаеться окно в котором написано всё что ты туда вписал.

2. KeyWait O, D - - после повторного нажатия на O закрывает окно. (Если закрываеться скрипт то ты что-то сделал не так.)

3. Gui, Show, NoActivate - - Показывает окно подсказки не активируя его. (Ты можешь кликнуть на него и перетащить куда-то. И так же видить его поверх игры если она в окне ибо стоит +alwaysontop) p.s ткк noactivate случайное нажатие не активирует окно, т.е активной останеться игра.



Тперь у тебя есть свой ротационный бот. :gusta:


АКТУАЛЬНО ДЛЯ ВСЕХ ПИРАТОК НО НЕ ДЛЯ ОФЫ.
ПОТОМУ ЧТО ПОЛИТИКА БЛИЗАРД НЕ ПОЗВОЛЯЕТ ПРИМЕНЯТЬ AHK НА LIVE\PTR СЕРВЕРЕ!!



Пример скрипта для совы с BFA:


Сам совиный скрипт:

 
Click on me boi

Code:
^F1::exitapp
F1::Pause, toggle
End::
loop
{
PixelGetColor, color, 983, 824, RGB
If (color = 0xE97FFF)
{
Send, {c down}
sleep 10
Send, {c up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0x00A2E7)
{
Send, {1 down}
sleep 10
Send, {1 up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0xC6FF94)
{
Send, {2 down}
sleep 10
Send, {2 up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0xC89E1E)
{
Send, {3 down}
sleep 10
Send, {3 up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0xD9F6FA)
{
Send, {4 down}
sleep 10
Send, {4 up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0xC3A0EC)
{
Send, {y down}
sleep 10
Send, {y up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0xFFC886)
{
Send, {x down}
sleep 10
Send, {x up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0x420081)
{
Send, {q down}
sleep 10
Send, {q up}
}
PixelGetColor, color, 983, 824, RGB
If (color = 0x6B0000)
{
Send, {e down}
sleep 10
Send, {e up}
}
}
return
O::
KeyWait, O
Gui, Add, Text,,    < Program binds. >
Gui, Add, Text,, 
Gui, Add, Text,, End - Start rotation, F1 - pause\resume rotation! Ctrl+F1 - Exit. O - Show\Hide This window.
Gui, Add, Text,, 
Gui, Add, Text,,  <  In-game binds. ****Make sure u had same buttons ! >
Gui, Add, Text,, 
Gui, Add, Text,, Кнопки: 1 - Wrath 2 - Sunfire 3 - Moonfire  4 - Stellar Flare
Gui, Add, Text,, Кнопки: Y - Fury of Elune X - Celestial Alignment Q - Starsurge E - Lunar Strike
Gui, Add, Text,, Кнопки: C - Moonkin Form.
Gui, Add, Text,, 
Gui, Add, Text,,           < Setup Hekili. >
Gui, Add, Text,, 
Gui, Add, Text,, Hekili: Single Target always, OR DISABLE STARFALL!!
Gui, Add, Text,, Hekili: On screen pos.  - X 31 Y -271. Icon Width: W 152 H 160 ZOOM 30
Gui, Add, Text,, Hekili: ! MAKE SHOW ONLY 1 BUTTON !
Gui, Add, Text,, 
Gui, Add, Text,,	          < TALLENTS: >
Gui, Add, Text,,
Gui, Add, Text,,  | 1 | Х | Х | Х | 2 | 2 or 3 | 1 or 2 |
Gui, Add, Text,,
Gui, Add, Text,,	      Good Game. ;3
gui, +alwaysontop
Gui, Show, NoActivate
KeyWait  O, D
Gui Destroy


Use pixel predator to get color value. Other ahk script show wrong color data. || Юзайте pixel predator что-бы получить корректное значение цвета: *GET --- PIXEL PREDATOR*
Thanks for the guide, I'm sick of getting banned using paid services that get detected.
Posts 1–4 of 4 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

Need help?