Мульти-чит AHK CSGO Версия 1.0

Могу разработать в Visual Studio ну понимаете AHK легче чем писать в VB

дата создание какого файла?

Как по мне, что-то тут не то…

Coollaunncher.exe

я ошибся, чит был сделан на скорую руку

Знаю , но все же лучше компилировать через сам ahk компилятор этим ты не ошибешься в ansi-32 допустим , кстати у тебя братишка Wallhack должен быть скомпилирован на ansi-32 , он у тебя не работает именно по этому , либо ты можешь мою версию wallhacka взять она работает и на 64 и на 32 на любой винде , но правда лучше использовать мой glowesp он работает четче ))

1 лайк

спасибо сделаю

Так дата создания твоего .ехе 2021-03-14 03:32:26
А ты говоришь на скорую руку

Ну? Что скажешь то

У меня почему то показывает тоже 25.08.21

Через VT посмотри

а да , в марте

Вот, это меня и напрягает. Так ещё и взаимодействие посмотри

Меню надо бы переработать)

1 лайк

Я могу помочь с созданием дизайна и меню. Можешь отписать мне в ЛС

меню уже создано , ему надо только подучить GUI , придумать красивое оформление клавиш , и сделать свой интерфейс в GUI прозрачным.

А так же задать своему меню оверлей через :

Class ClockGui {
  Static WM_LBUTTONDOWN := 0x201, WM_LBUTTONDBLCLK := 0x203, WM_RBUTTONDOWN := 0x204
  , WM_RBUTTONDBLCLK := 0x206, WM_MOUSEWHEEL := 0x020A, WM_MBUTTONDOWN := 0x0207, Mem := {}

  __New(hParent, Option) {
  	Local Font, FontName, Width, Height, Sec, Sek, Min, Name, DB, DS, hH1, hH2, hM1, hM2, hS1, hS2, hF1, hF2, W, FlashTime, Flash
  	, Colon, Colon_O, S_DefaultGui, S_FormatInteger, RealWidth, hWnd, ColorItem, BckgItem, BckgMain, Off, k, v, rm, rm1
  	This.Initialize()
  	S_FormatInteger := A_FormatInteger
  	SetFormat, IntegerFast, D
  	Option := "|" Option "|"
  	Width := This.Option("W", Option, 0)
  	Height := This.Option("H", Option, 0)
  	DS := This.Option("DS", Option, 0)
  	DB := This.Option("DB", Option, 0)
  	BckgMain := This.Option("BckgMain", Option, "Default")
  	BckgItem := This.Option("BckgItem", Option, "000000")
  	ColorItem := This.Option("ColorItem", Option, "ffffff")
  	Name := This.Option("Name", Option)
  	Font := This.Option("Font", Option)
  	FontName := This.Option("FontName", Option)
  	Sec := !!RegExMatch(Option, "i)\|\s*Sec\s*\|")
      Sek := !!RegExMatch(Option, "i)\|\s*Sek\s*\|")
      Min := !!RegExMatch(Option, "i)\|\s*Min\s*\|")
  	Colon := !!RegExMatch(Option, "i)\|\s*Colon\s*\|")
  	Pos := This.Option("Pos", Option)
  	Section := Instr(Option, "|Section|") ? "Section" : "" 
  	
  	If (Colon_O := this.Option("Colon", Option)) && (Colon := 1)
  	{
  		InStr(Colon_O, "Flash") && (Flash := 1) && !RegExMatch(Colon_O, "\s+\d+", FlashTime) && (FlashTime := 500)
  		FlashTime := FlashTime > 950 ? 950 : FlashTime < 50 ? 50 : FlashTime 
  	} 
  	W := (Width - (DS * (Sec ? 3 : 2) + DB * (Sec ? 2 : 1))) / (Sec ? 6 : 4)
  	
  	S_DefaultGui := A_DefaultGui
  	Gui, New
  	Gui, +HWNDhWnd -DPIScale -Caption +0x40000000 -0x80000000  ; Add WS_CHILD, remove WS_POPUP, setparent no deactivate main gui
  	Gui, Color, %BckgItem%
  	Gui, Margin, 0, 0
  	Gui, Font, %Font%, %FontName%


      if Sek
  {
  		If Colon
  		{
  			Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  			Gui, Add, Text, % "+0x201 x+0 yp-" Off " hp+" Off " w" (DB - DS * 2) " c" ColorItem " HwndhF2", :
  			Gui, Add, Progress, x+0 y0 h%Height% w%DS% Background%BckgMain%
  		}
  		Else
  			Gui, Add, Progress, x+0 yp hp w%DB% Background%BckgMain%
  		Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhS1
  		Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  		Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhS2
  }
  Else
  {
  if Min
  {
  		If Colon
  	{
  		Off := (RegExMatch(Colon_O, "i)v(\d+)", rm) ? rm1 : Height / 6)
  		Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  		Gui, Add, Text, % "+0x201 x+0 yp-" Off " hp+" Off " w" (DB - DS * 2) " c" ColorItem " HwndhF1", :
  		Gui, Add, Progress, x+0 y0 h%Height% w%DS% Background%BckgMain%
  	}
  	Else
  		Gui, Add, Progress, x+0 yp hp w%DB% Background%BckgMain%

  	Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhM1
  	Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  	Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhM2
  		If Colon
  		{
  			Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  			Gui, Add, Text, % "+0x201 x+0 yp-" Off " hp+" Off " w" (DB - DS * 2) " c" ColorItem " HwndhF2", :
  			Gui, Add, Progress, x+0 y0 h%Height% w%DS% Background%BckgMain%
  		}
  		Else
  			Gui, Add, Progress, x+0 yp hp w%DB% Background%BckgMain%
  		Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhS1
  		Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  		Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhS2
   }
   Else
   {    
  	Gui, Add, Text, x0 y0 w%W% h%Height% +0x201 +0x100 c%ColorItem% HwndhH1
  	Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  	Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhH2

  	If Colon
  	{
  		Off := (RegExMatch(Colon_O, "i)v(\d+)", rm) ? rm1 : Height / 6)
  		Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  		Gui, Add, Text, % "+0x201 x+0 yp-" Off " hp+" Off " w" (DB - DS * 2) " c" ColorItem " HwndhF1", :
  		Gui, Add, Progress, x+0 y0 h%Height% w%DS% Background%BckgMain%
  	}
  	Else
  		Gui, Add, Progress, x+0 yp hp w%DB% Background%BckgMain%

  	Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhM1
  	Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  	Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhM2
  	If Sec
  	{
  		If Colon
  		{
  			Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  			Gui, Add, Text, % "+0x201 x+0 yp-" Off " hp+" Off " w" (DB - DS * 2) " c" ColorItem " HwndhF2", :
  			Gui, Add, Progress, x+0 y0 h%Height% w%DS% Background%BckgMain%
  		}
  		Else
  			Gui, Add, Progress, x+0 yp hp w%DB% Background%BckgMain%
  		Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhS1
  		Gui, Add, Progress, x+0 yp hp w%DS% Background%BckgMain%
  		Gui, Add, Text, x+0 y0 w%W% hp +0x201 +0x100 c%ColorItem% HwndhS2
  	}
  }
  }
  	
  	Gui, +Parent%hParent%
  	Gui, %hParent%:Add, Text, Hidden HWNDhDummy %Pos% w0 h0
  	GuiControlGet, MyPos, Pos, %hDummy% 
  	DllCall("DestroyWindow", "Ptr", hDummy) 
  	Gui, Show, Hide AutoSize x%MyPosX% y%MyPosY% 
  	Gui, %S_DefaultGui%:Default 
  	WinGetPos, , , RealWidth, RealHeight, ahk_id %hWnd%
  	Gui, %hParent%:Add, Text, Hidden HWNDhDummy x%MyPosX% y%MyPosY% w%RealWidth% h%RealHeight% %Section%
  	DllCall("DestroyWindow", "Ptr", hDummy)

  	For, k, v in ["hWnd","Name","Sec","Sek","RealWidth","RealHeight","FlashTime","hParent","Pos"
  	,"Height","Flash","hH1","hH2","hM1","hM2","hS1","hS2","hF1","hF2"]
  		This[v] := %v%
  	For k, v in ["H1","H2","M1","M2","S1","S2"]
  		This.Mem.Ctrl[h%v%] := {Gui:hWnd, Name:v}
  	This.Mem.Gui[hWnd] := This, This.Stop(1)
  	SetFormat, IntegerFast, %S_FormatInteger%
  }
  Initialize() {
  	Static Start
  	Local Class
  	If Start
  		Return
  	Class := This.__Class, Class := %Class%, Start := 1
  	OnMessage(Class.WM_LBUTTONDOWN, ObjBindMethod(Class, "OnButtonDown"))
  	OnMessage(Class.WM_LBUTTONDBLCLK, ObjBindMethod(Class, "OnButtonDown"))
  	OnMessage(Class.WM_RBUTTONDOWN, ObjBindMethod(Class, "OnButtonDown"))
  	OnMessage(Class.WM_RBUTTONDBLCLK, ObjBindMethod(Class, "OnButtonDown"))
  	OnMessage(Class.WM_MOUSEWHEEL, ObjBindMethod(Class, "OnMouseWheel"))
  	OnMessage(Class.WM_MBUTTONDOWN, ObjBindMethod(Class, "OnMbuttonDown"))
  }
  Show(Show=1) { 
  	Gui, % This.hWnd ":" (Show ? "Show" : "Hide"), % (Show ? "NA" : "")
  } 
  Move(x, y) {
  	x := Format("{:d}", x), y := Format("{:d}", y)
  	Gui, % This.hWnd ":Show", NA x%x% y%y% 
  }
  Stop(Param = "") {
  	If Param =
  		Return This._Stop
  	This._Stop := Param
  	If !Param
  		This.Block(1)
  	If Param && This.InDay
  		This.InDay := 0
  	If Param && This.Flash
  		This.ColonView()
  }
  Block(Param = "") {
  	If Param !=
  		This._Block := Param
  	Return This._Block
  }
  Option(key, option, ret="") {
  	Local Match, Match1
  	RegExMatch(option, "iS)\|\s*" key "\s+(.*?)\s*\|", Match)
  	Return ret != "" && Match1 = "" ? ret  : Match1
  }
  OnButtonDown(wp, lp, msg, hwnd) {
  	If !This.Mem.Ctrl.HasKey(hwnd) || (This.Mem.Gui[A_Gui]).Block()
  		Return
  	If (msg = This.WM_LBUTTONDOWN || msg = This.WM_LBUTTONDBLCLK)
  		This.Step(1, This.Mem.Ctrl[hwnd].Name, A_Gui)
  	Else
  		This.Step(0, This.Mem.Ctrl[hwnd].Name, A_Gui)
  	Return 1
  }
  OnMouseWheel(wp, lp, Msg, hwnd) {
  	Local hCtrl
  	MouseGetPos, , , , hCtrl, 2
  	If !This.Mem.Ctrl.HasKey(hCtrl) || (This.Mem.Gui[This.Mem.Ctrl[hCtrl].Gui]).Block()
  		Return
  	This.Step((wp >> 16) = 120 ? 1 : 0, This.Mem.Ctrl[hCtrl].Name, This.Mem.Ctrl[hCtrl].Gui)
  	Return 1
  }
  OnMbuttonDown(wp, lp, Msg, hwnd) {
  	Local o, l
  	If !This.Mem.Ctrl.HasKey(hwnd) || (o := This.Mem.Gui[A_Gui]).Block()
  		Return
  	l := SubStr(This.Mem.Ctrl[hwnd].Name, 1, 1)
  	GuiControl, % A_Gui ":", % o["h" l 1], % o[l 1] := "0"
  	GuiControl, % A_Gui ":", % o["h" l 2], % o[l 2] := "0"
  	Return 1
  }
  Step(add, c, hwnd, o="", b=0) {
  	Static a := {H1:2,H2:9,M1:5,M2:9,S1:5,S2:9}
  	o := This.Mem.Gui[hwnd]
  	o[c] := Format("{:d}", add ? (o[c] = a[c] ? 0 : o[c] + 1) : (o[c] = 0 ? a[c] : o[c] - 1))
  	If InStr(c, "h") && (o.H1 o.H2 > 23) && (1, b := c = "H2")
  		GuiControl, % o.hwnd ":", % o["hH2"], % o.H2 := (c = "H1" || add ? "0" : "3")
  	If !b
  		GuiControl, % o.hwnd ":", % o["h" c], % o[c]
  }
  Set(h, m, s) {
  	Local k, v, d
  	For k, v in ["H1","H2","M1","M2","S1","S2"]
  		If This[v] != (d := SubStr(h m s, k, 1))
  			GuiControl, % This.hwnd ":", % This["h" v], % This[v] := Format("{:d}", d)
  }
  SetTime(Time) {
  	Local o
  	If Time = 
  		Return This.Watch ? This.Set("00", "00", "00") : This.Set(A_Hour, A_Min, A_Sec) 
  	o := StrSplit(Time, ":")
  	This.Set(o[1], o[2], o[3])
  }
  Get(obj=0) {
  	Local Time
  	Time := This.h1 This.h2 ":" This.m1 This.m2 ":" This.s1 This.s2
  	Return obj ? StrSplit(Time, ":") : Time
  }
  StartClock() {
  	Local obj
  	If !This.Stop()
  		Return 0
  	This.Stop(0), This.Timer := 0, This.Watch := 0, This.InDay := 0, This.Loop := 0
  	This.Set(A_Hour, A_Min, A_Sec)
  	obj := ObjBindMethod(This, "TimerClock")
  	SetTimer, % obj, % "-" (1000 - A_Msec) + 100
  	Return 1
  }
  StartTimer(Func="") {
  	Local TimerPeriod, obj
  	If !This.Stop() || This.Get() = "00:00:00"
  		Return 0 
  	This.Stop(0)
  	TimerPeriod := This.HMSToMSec(This.h1 This.h2, This.m1 This.m2, This.s1 This.s2) 
  	If !TimerPeriod
  		Return 0, This.Stop(1)
  	This.TimerStart := A_TickCount + 1000, This.TimerStartMsec := A_Msec
  	This.TimerPeriod := TimerPeriod, This.Func := Func, This.Timer := 1, This.Watch := 0, This.InDay := 0, This.Loop := 0
  	obj := ObjBindMethod(This, "TimerTimer")
  	SetTimer, % obj, % "-" 1100
  	
  	Return 1
  }
  StartWatch(Func="", Loop=0) {
  	Local obj
  	If !This.Stop()
  		Return 0
  	This.Stop(0)
  	This.WatchStart := A_TickCount - This.HMSToMSec(This.h1 This.h2, This.m1 This.m2, This.s1 This.s2)
  	This.WatchStartMsec := A_Msec, This.Func := Func, This.Timer := 0, This.Watch := 1, This.InDay := 0, This.Loop := Loop
  	obj := ObjBindMethod(This, "TimerWatch")
  	SetTimer, % obj, % "-" 1100
  	Return 1
  }
  StartTimerDay(Func="", Date="", Loop=0) {
  	Local TimerPeriod, obj
  	If !This.Stop()
  		Return 0
  	If Date = User
  		TimerPeriod := This.DifferenceTime((This.CheckDate := This.Get()), A_Hour ":" A_Min ":" A_Sec, 1) - A_Msec
  	Else If Date
  		TimerPeriod := This.DifferenceTime((This.CheckDate := Date), A_Hour ":" A_Min ":" A_Sec, 1) - A_Msec
  	Else
  		TimerPeriod := 86400000 - A_Msec, This.CheckDate := A_Hour ":" A_Min ":" A_Sec
  	If !TimerPeriod
  		Return 0, This.Stop(1)
  	This.TimerStart := A_TickCount + 1000, This.TimerStartMsec := 0, This.TimerPeriod := TimerPeriod
  	This.Timer := 1, This.Watch := 0, This.InDay := 1, This.Func := Func, This.Stop(0), This.Loop := Loop
  	This.SetTime(This.FormatTime(TimerPeriod))
  	obj := ObjBindMethod(This, "TimerTimer")
  	SetTimer, % obj, % "-" 10
  	Return 1
  }
  StartWatchDay(Func="", Date="", Loop=0) {
  	Local obj
  	If !This.Stop()
  		Return 0
  	If Date = User
  		This.WatchStart := A_TickCount - (This.DifferenceTime(A_Hour ":" A_Min ":" A_Sec, (This.CheckDate := This.Get()), 1) + A_Msec)
  	Else If Date
  		This.WatchStart := A_TickCount - (This.DifferenceTime(A_Hour ":" A_Min ":" A_Sec, (This.CheckDate := Date), 1) + A_Msec)
  	Else
  		This.WatchStart := A_TickCount - A_Msec, This.CheckDate := A_Hour ":" A_Min ":" A_Sec
  	This.Watch := 1, This.Timer := 0, This.InDay := 1, This.Loop := Loop
  	This.WatchStartMsec := 0, This.Func := Func, This.Stop(0)
  	obj := ObjBindMethod(This, "TimerWatch")
  	SetTimer, % obj, % "-" 10
  	Return 1
  }
  TimerTimer() {
  	Local Time, obj, obj2, t
  	If This.Stop()
  		Return
  	Time := This.FormatTime(This.TimerPeriod - (A_TickCount - This.TimerStart))
  	This.SetTime(Time)
  	This.CheckFlash()
  	If Time = 00:00:00
  	{
  		If !This.Loop
  			Return This.Stop(1), Func(This.Func).Call(This)
  		This.TimerStart := A_TickCount + 1000
  		TimerPeriod := This.DifferenceTime(This.CheckDate, A_Hour ":" A_Min ":" A_Sec, 1) - A_Msec
  		This.TimerPeriod := TimerPeriod <= 0 ? 86400000 + TimerPeriod : TimerPeriod
  		obj2 := Func(This.Func).Bind(This)
  		Try SetTimer, % obj2, -50
  	}
  	If This.InDay
  		t := (1000 - A_Msec)
  	Else
  		t := This.TimerStartMsec - A_Msec, t := (t < 0 ? 1000 + t : t)
  	obj := ObjBindMethod(This, "TimerTimer")
  	SetTimer, % obj, % "-" t + 100
  }
  TimerWatch() {
  	Local Time, obj, obj2, t
  	If This.Stop()
  		Return
  	If (t := A_TickCount - This.WatchStart) > 86399999
  	{
  		If !This.Loop
  			Return This.Stop(1), This.SetTime("00:00:00"), Func(This.Func).Call(This)
  		obj2 := Func(This.Func).Bind(This)
  		Try SetTimer, % obj2, -50
  		Time := "00:00:00", This.WatchStart += 86400000
  	}
  	Else
  		Time := This.FormatTime(t)
  	This.SetTime(Time)
  	This.CheckFlash()
  	If This.InDay
  		t := (1000 - A_Msec)
  	Else
  		t := This.WatchStartMsec - A_Msec, t := (t < 0 ? 1000 + t : t)
  	obj := ObjBindMethod(This, "TimerWatch")
  	SetTimer, % obj, % "-" t + 100
  }
  Reset() {
  	This.Stop(1)
  	This.Set("00", "00", "00")
  }
  TimerClock() {
  	Local obj
  	If This.Stop()
  		Return
  	This.Set(A_Hour, A_Min, A_Sec)
  	This.CheckFlash()
  	obj := ObjBindMethod(This, "TimerClock")
  	SetTimer, % obj, % "-" (1000 - A_Msec) + 100
  }
  CheckFlash() {
  	Local obj
  	If !This.Flash
  		Return
  	DllCall("ShowWindowAsync", "Ptr", This.hF1, "Int", 0)
  	If This.Sec
  		DllCall("ShowWindowAsync", "Ptr", This.hF2, "Int", 0)
  	obj := ObjBindMethod(This, "ColonView")
  	SetTimer, % obj, % "-" This.FlashTime
  }
  ColonView() {
  	DllCall("ShowWindowAsync", "Ptr", This.hF1, "Int", 1)
  	If This.Sec
  		DllCall("ShowWindowAsync", "Ptr", This.hF2, "Int", 1)
  }
  Destroy() {
  	Local k, v
  	If !This
  		Return
  	This.Stop(1)
  	Gui, % This.hWnd ":Destroy"
  	For k, v in ["hS1","hM1","hH1","hS2","hM2","hH2"]
  		This.Mem.Ctrl.Delete(This[v])
  	This.Mem.Gui.Delete(This.hWnd)
  	This.Delete(Chr(0), Chr(0x10FFFF))
  	This.Delete(This.MinIndex(), This.MaxIndex())
  	This.SetCapacity(0)
  	This.Base := ""
  }
  MathTime(Time1, S, Time2) {
  	Local T
  	Time1 := Time1 = "" ? A_Hour ":" A_Min ":" A_Sec : Time1
  	T := This.StrToMSec(Time1) + (S This.StrToMSec(Time2))
  	T := Mod(T, 86400000)
  	Return This.FormatTime(T < 0 ? 86400000 + T : T)
  }
  FormatTime(Time) {
  	Local Rest, Hours, Min, Sec, MSec
  	If Time < 0
  		Return "00:00:00"
  	Rest := Mod(Time, 3600000)
  	Hours := Format("{:02d}", Time // 3600000)
  	Min := Format("{:02d}", Rest // 60000)
  	Sec := Format("{:02d}", Mod(Rest, 60000) // 1000)
  	; MSec := Format("{:03d}", Mod(Rest, 1000))
  	Return Hours ":" Min ":" Sec
  }
  StrToMSec(Time) {
  	Local o
  	o := StrSplit(Time, ":")
  	Return This.HMSToMSec(o[1], o[2], o[3])
  }
  HMSToMSec(h, m, s=0) {
  	Local sec
  	sec := h * 3600
  	sec += m * 60
  	sec += s
  	Return sec * 1000
  }
  DifferenceTime(Time1, Time2, Day=0) {
  	Local T
  	T := StrSplit(Time1, ":")
  	Time1 := This.HMSToMSec(T[1], T[2], (T[3] ? T[3] : "00"))
  	T := StrSplit(Time2, ":")
  	Time2 := This.HMSToMSec(T[1], T[2], (T[3] ? T[3] : "00"))
  	T := Time1 - Time2
  	If !Day
  		Return T
  	T := Mod(T, 86400000)
  	If T < 0
  		Return 86400000 + T
  	Return T
  }
}
1 лайк

Все файлы прошли проверку! 25.08.2021 16:50

2 лайка

Спасибо за проверку

1 лайк

Ща обновлю наверн вх твой @Marsel_Show