Skocz do zawartości

Norecoil ahk/bhop/pistol auto fire/


foksio
# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

Skrypt autorstwa EpicnessCoding
 
Uruchomienie:
 
Potrzebny program autohotkey:
 
 
Pobieramy i instalujemy
 
kod wklejamy do notatnika i zapisujemy jako plik ahk z dowolną nazwą
 
odpalamy csgo w trybie "pełny ekran w oknie" - trzeba zmienić w grze w ustawieniach wideo
 
odpalamy stworzony przez nas plik ahk  (ewentualnie pobieramy plik/wypakowujemy i odpalamy)
 
Po pojawieniu się menu naszego skryptu wpisujemy w okienka:
amount: (wartość jaką chcemy do defaultowego norecoil-proponuje 3/4)
sensitivity: (wartośc czułości myszy jaką mamy w grze)
scoped sensitivity: (wartość czułości przybliżania jaką mamy ustawioną w grze)
 
 
 
Funkcje:
 
pause skryptu := "RCtrl"
defaultowy norecoil= "f3"
ak47_norecoil := "f4"
m4a4_norecoil := "f5"
m4a1s_norecoil := "f6"
galil_norecoil := "f7"
famas_norecoil := "f8"
ump45_norecoil := "f9"
mp7_norecoil := "f10"
p90_norecoil := "f11"
mac10_norecoil := "f12"
mp9_norecoil := "Numpad1"
bizon_norecoil := "Numpad2"
sg553_norecoil := "Numpad3"
aug_norecoil := "Numpad4"
włączenie/wyłączenie norecoil := "f2"
włączenie/wyłączenie autofire := "f1"

włączenie/wyłączenie bhop :="RShift"

skoki bhop :="Space"

 

 

Skrypt do wklejenia:

;By: EpicnessCoding
;full recoil control +
;generic recoil control +
;pistol autofire & recoil control +
;auto bhop +
;camping trigger bot
;HAVE FUN!

#NoEnv
SendMode Input
#singleInstance, force

SetTitleMatchMode, 3
#IfWinActive Counter-Strike: Global Offensive

;--------------
;-----EDIT-----
;--------------

;modify true/false ONLY
show_tooltip := true
show_gui := true
only_norecoil_when_crouched := false
invert_y_axis := false

;return to the start after shooting & norecoil happens
return_to_start := false
;speed of return to start
return_to_start_delay := 5

;camping triggerbot
;offset pixels for triggerbot color search (1 pixel because awp scope takes up 1 pixel)
offsetX := 1
offsetY := 1
;delay for triggerbot
trigger_delay := 20
;triggerbot color tolerance
tolerance := 10

;bhop auto strafe
bhop_auto_strafe := true

;keybinds (leave the quotes (") there)
key_crouch := "LCtrl"
key_shoot := "LButton"
key_pause_script := "RCtrl"
key_generic_norecoil := "f3"
key_ak47_norecoil := "f4"
key_m4a4_norecoil := "f5"
key_m4a1s_norecoil := "f6"
key_galil_norecoil := "f7"
key_famas_norecoil := "f8"
key_ump45_norecoil := "f9"
key_mp7_norecoil := "f10"
key_p90_norecoil := "f11"
key_mac10_norecoil := "f12"
key_mp9_norecoil := "Numpad1"
key_bizon_norecoil := "Numpad2"
key_sg553_norecoil := "Numpad3"
key_aug_norecoil := "Numpad4"
key_toggle_norecoil := "f2"
key_toggle_autofire := "f1"
;for aug/sg553 zoom/scope
;hold the key while scoped for the scoped norecoil to activate
key_hold_scoped := "MButton"
;for generic norecoil ONLY
key_increase_norecoil_amount := "Up"
key_decrease_norecoil_amount := "Down"
;for camping triggerbot (hold)
key_hold_trigger := "t"
;for bhop
key_bhop := "RShift"
key_jump := "Space"
key_strafe_left := "a"
key_strafe_right := "d"

;--------------
;-----EDIT-----
;--------------
;Don't touch the code below!

FileRead, tempSaveText, %A_WorkingDir%\script_save.txt
If ErrorLevel = 1
{
	FileAppend, 2|0.75, %A_WorkingDir%\script_save.txt
	FileRead, tempSaveText, %A_WorkingDir%\script_save.txt
}

StringSplit, tempSaveTextSplit, tempSaveText, |
global sensitivity := tempSaveTextSplit1
global scopedSensitivity := tempSaveTextSplit2

;f2 = toggle noRecoil
noRecoil := false
;f3 = toggle autofire
autofire := false

bhop := false

;special generic recoil stuff
firstShotRecoilTimeMax := 15
firstShotRecoilTime := 0

firstShotRestTimeMax := 5
firstShotRestTime := 0

scoped := false

weapon := 0
;0 = generic
;1 = ak
;2 = m4
;3 = m4a1s
;4 = galil
;5 = famas
;6 = ump45
;7 = mp7
;8 = p90
;9 = mac10
;10 = mp9
;11 = ppbizon
;12 = sg553
;13 = aug

;recoil patterns
ak47_pattern_str := "-4,7;4,19;-3,29;-1,31;13,31;8,28;13,21;-17,12;-42,3;-21,2;12,11;-15,7;-26,-8;-3,4;40,1;19,7;14,10;27,0;33,-10;-21,-2;7,3;-7,9;-8,4;19,-3;5,6;-20,-1;-33,-4;-45,-21;-14,1"
ak47_offset := 3.8
ak47_waitoffset := 4.7

m4_pattern_str := "20,7;10,9;10,16;7,21;-9,23;-5,27;16,15;11,13;22,5;-4,11;-18,6;-30,-4;-24,0;-25,-6;0,4;8,4;-11,1;-13,-2;2,2;33,-1;10,6;27,3;10,2;11,0;-12,0;6,5;4,5;3,1;4,-1"
m4_offset := 3.64
m4_waitoffset := 4.13
m4_offset2 := 3.65
m4_waitoffset2 := 4.17

m4a1s_pattern_str := "1,6;0,4;-4,14;4,18;-6,21;-4,24;14,14;8,12;18,5;-4,10;-14,5;-25,-3;-19,0;-22,-3;1,3;8,3;-9,1;-13,-2;3,2;1,1"
m4a1s_offset := 3.9
m4a1s_waitoffset := 4.7

galil_pattern_str := "4,4;2,5;6,10;12,20;-1,25;2,24;6,18;11,10;-4,14;-15,8;-20,-10;-29,-13;-9,8;-12,2;-7,1;0,1;4,7;25,7;14,4;25,-3;31,-9;6,3;-12,3;10,-1;10,-1;10,-4;-9,5;-32,-5;-24,-3;-15,5;6,8;-14,-3;-24,-5;-13,-1"
galil_offset := 3.65
galil_waitoffset := 4.28

famas_pattern_str := "-4,5;1,4;-6,10;-1,17;0,20;14,20;16,20;-6,12;-20,8;-16,5;-13,2;4,5;23,4;12,6;20,-3;5,0;15,0;3,5;-4,3;-25,-1;-3,2;11,0;15,-7;15,-10"
famas_offset := 3.6
famas_waitoffset := 4.15

ump45_pattern_str := "-1,6;-4,8;-2,18;-4,23;-9,23;-3,26;11,17;-4,12;9,13;18,8;15,5;-1,3;5,6;0,6;9,-3;5,-1;-12,4;-19,1;-1,-2;15,-5;17,-2;-6,3;-20,-2;-3,-1"
ump45_offset := 3.65
ump45_waitoffset := 4.2
ump45_offset2 := 3.45
ump45_waitoffset2 := 4.2

mp7_pattern_str := "2.18750,4.37500;0.62500,2.81250;0.00000,5;0.00000,5;-3.90625,8.28125;-3.43750,5;-4.37500,6.56250;-4.37500,6.87500;-1.25000,13.12500;-3.59375,8.90625;-4.37500,7.18750;-3.43750,10.93750;0.00000,5;0.00000,5;-6.25000,13.75000;0.00000,0.00000;20.62500,8.75000;17.18750,3.43750;6.87500,2.81250;2.81250,2.81250;-2.81250,4.37500;-2.50000,1.87500;0.00000,0.00000;-3.28125,3.28125;-10,0.00000;-3,0.00000;-3,0.00000;-10,3.43750;-2.18750,1.25000;-10,0.00000;-8.59375,-2.34375;-5.78125,-2.81250;-5,-0.93750;-5,-1.25000;-5,-0.46875;-1.40625,0.78125;-0.78125,0.78125;-0.5,0.15625;-0.15625,0.15625;-0.15625,0.15625;-3,0.15625;"
mp7_waitoffset := 4
mp7_offset := 4

p90_pattern_str := "1.250,10;-1.250,10;0,5;0,10;0,10;0,10;0,10;-10,10;-10.625,20.625;3.188,15;-5.375,8.438;-3.750,15.875;-3.813,15;5.813,5.688;5.500,10;5.813,-5.938;5.938,-5.438;5,-5;10,-5;3.875,5.313;3.375,3.875;-5.938,3.188;-1,-1;-1,-3;0,-1;-1.250,-1.875;5.688,-1.563;-3.750,0.625;5.125,1.250;5.375,0.938;5.438,0.625;5.000,-0.625;0,5;5.500,-2.188;4.688,-0.938;0,0;-5.000,0.313;-2.188,0.313;-5,1;5,1;-5.375,-0.313;1.625,1.875;4.688,1.563;-1.563,0.625;-0.625,0.313;5,0;0.625,-2.500;15.625,-0.938;15.375,-0.313;10.063,-0.625;10.125,-0.625;5.250,0.625;5.625,0.313;5,5;5,-5;5,-5;5,-5;"
p90_waitoffset := 4
p90_offset := 4

mac10_pattern_str := "10.81,5.19;10.25,5.50;10.56,5.44;5.81,15.44;5.94,10.69;10.56,15.94;5.63,15.19;-3.13,10.63;5.63,6.56;-20,6.88;-20,-6.56;-1.25,-4.69;-10,-2.50;-50.56,2.81;-15.13,-0.63;-20.56,-3.75;-5.50,-0.31;-5.81,-3.44;-5.75,1.88;-10.19,-2.50;-10.94,1.25;5.38,1.25;3.44,-2.50;3.00,2.81;5.75,0.94;1.56,-1.25;2.50,-0.94;5.38,1.25;1.25,1.88"
mac10_waitoffset := 4
mac10_offset := 4

mp9_pattern_str := "0.00,5.31;-2.19,1.88;1.88,8.13;-1.88,10.94;6.56,12.81;-0.31,12.50;-5.94,14.06;7.81,8.75;13.75,5.94;12.81,-1.25;15.94,-2.81;0.00,6.25;-0.31,7.19;-15.31,3.75;-8.44,6.56;-10.94,3.75;-8.13,4.38;-13.13,-0.31;-18.44,-6.56;3.13,0.94;9.38,0.63;14.06,1.56;1.25,0.94;-10.63,-0.94;-16.56,-4.38;-3.13,1.56;-6.56,3.13;5.00,3.75;4.06,3.75"
mp9_waitoffset := 4
mp9_offset := 4

bizon_pattern_str := "0.00,2.19;-1.88,2.81;-1.88,5.00;-5.31,7.81;-7.50,8.13;1.88,11.88;5.63,12.50;0.31,10.94;10.94,3.44;8.75,2.50;3.44,5.94;9.69,0.31;-5.00,5.94;-4.38,0.00;-3.75,0.00;-6.88,-1.56;0.31,2.50;5.94,0.00;2.19,2.19;3.75,0.63;11.56,-0.31;7.19,-1.56;4.06,0.00;0.94,0.00;2.19,-2.19;2.50,-1.88;2.19,1.56;-6.88,1.56;-13.44,2.50;-5.00,3.13;2.81,0.00;8.44,-0.31;-8.13,-4.69;10.31,-3.13;5.63,-3.44;5.94,-3.75;-7.50,5.00;4.69,0.63;3.13,-1.56;10.63,-3.13;-17.81,5.63;-6.88,1.25;-3.44,0.63;-13.13,1.25;3.13,0.00;-18.75,-1.25;-5.00,-0.31;-1.88,-0.63;5.31,3.75"
bizon_waitoffset := 4
bizon_offset := 4

sg553_pattern_str := "-2.50,5.00;-8.44,10.00;-5.31,14.38;-4.38,19.06;-4.69,19.69;-4.06,22.19;-12.50,9.06;8.75,10.00;-15.00,7.50;-20.00,5.00;-10.13,3.75;-3.44,2.19;-5.75,11.56;-1.56,-6.56;1.56,3.44;15.81,-11.25;15.63,-5.31;-5.00,-1.56;25.00,1.56;35.31,-3.13;27.19,-0.31;10.94,5.63;9.06,5.00;3.13,4.69;-4.69,0.00;-5.81,-2.19;-5.81,-1.88;-5.75,4.38;-10.81,3.44"
sg553_waitoffset := 4
sg553_offset := 4

aug_pattern_str := "3.44,4.69;0.31,7.50;-3.44,13.44;-4.06,17.19;3.44,16.88;5.31,20.00;8.13,12.81;5.00,9.38;7.81,7.81;-10.00,7.81;-2.81,3.13;-7.81,0.00;-10.25,4.06;-15.69,2.50;-20.44,-7.19;-10.75,-7.81;5.25,3.44;-9.38,3.13;10.63,0.31;8.44,0.00;19.69,2.81;6.88,4.06;4.38,0.00;5.63,-1.88;7.81,-0.31;2.50,-0.63;9.38,-5.31;0.31,3.75;11.56,-4.06"
aug_waitoffset := 4
aug_offset := 4

StringSplit, ak_pattern, ak47_pattern_str, `;
StringSplit, m4_pattern, m4_pattern_str, `;
StringSplit, m4a1s_pattern, m4a1s_pattern_str, `;
StringSplit, galil_pattern, galil_pattern_str, `;
StringSplit, famas_pattern, famas_pattern_str, `;
StringSplit, ump45_pattern, ump45_pattern_str, `;
StringSplit, mp7_pattern, mp7_pattern_str, `;
StringSplit, p90_pattern, p90_pattern_str, `;
StringSplit, mac10_pattern, mac10_pattern_str, `;
StringSplit, mp9_pattern, mp9_pattern_str, `;
StringSplit, bizon_pattern, bizon_pattern_str, `;
StringSplit, sg553_pattern, sg553_pattern_str, `;
StringSplit, aug_pattern, aug_pattern_str, `;

if(show_gui){
	;GUI
	Gui, Show, w220 h320, Script
	;No Recoil
	Gui, Add, GroupBox, x10 y10 w170 h90, No Recoil
	Gui, Add, Text, x20 y30 vNORECOILTEXT cRed, %key_toggle_norecoil% - toggle: Off
	Gui, Add, Text, x20 y50 cBlack, Amount:
	Gui, Add, Edit, x70 y45 w55
	Gui, Add, UpDown, vNORECOILAMT Range1-20, 1
	Gui, Add, Text, x20 y70 w140 vWEAPONRECOILTEXT cBlue, %key_generic_norecoil% - %key_aug_norecoil%: Default

	;Autofire
	Gui, Add, GroupBox, x10 y110 w170 h50, Auto Fire
	Gui, Add, Text, x20 y130 vAUTOFIRETEXT cRed, %key_toggle_autofire% - toggle: Off
	;Sensitivity
	Gui, Add, GroupBox, x10 y170 w170 h70, Sensitivity
	Gui, Add, Text, x20 y190 cBlack, Sensitivity:
	Gui, Add, Edit, x80 y185 w30 vSENSITIVITY gSENSCHANGED, %sensitivity%
	Gui, Add, Text, x20 y220 cBlack, Scoped Sensitivity:
	Gui, Add, Edit, x120 y215 w30 vSCOPEDSENSITIVITY gSCOPEDSENSCHANGED, %scopedSensitivity%
	;BHop
	Gui, Add, GroupBox, x10 y250 w170 h50, BHop
	Gui, Add, Text, x20 y270 w100 vBHOPTEXT cRed, %key_bhop% - toggle: Off
}

global modifier := 2.52 / sensitivity

previouslyCrouched := false

previouslyTrigger := false
lastColor := 0x000000

previouslyLeft := false
previouslyRight := false
lastX := 0

global totalMouseX := 0
global totalMouseY := 0

noRecoilIndex := 0

OnExit, GuiClose

HotKey, *%key_shoot%, shoot
HotKey, *%key_pause_script%, pause_script
HotKey, *%key_generic_norecoil%, generic_norecoil
HotKey, *%key_ak47_norecoil%, ak47_norecoil
HotKey, *%key_m4a4_norecoil%, m4a4_norecoil
HotKey, *%key_m4a1s_norecoil%, m4a1s_norecoil
HotKey, *%key_galil_norecoil%, galil_norecoil
HotKey, *%key_famas_norecoil%, famas_norecoil
HotKey, *%key_ump45_norecoil%, ump45_norecoil
HotKey, *%key_mp7_norecoil%, mp7_norecoil
HotKey, *%key_p90_norecoil%, p90_norecoil
HotKey, *%key_mac10_norecoil%, mac10_norecoil
HotKey, *%key_mp9_norecoil%, mp9_norecoil
HotKey, *%key_bizon_norecoil%, bizon_norecoil
HotKey, *%key_sg553_norecoil%, sg553_norecoil
HotKey, *%key_aug_norecoil%, aug_norecoil
HotKey, *%key_toggle_norecoil%, toggle_norecoil
HotKey, *%key_toggle_autofire%, toggle_autofire
HotKey, *~%key_hold_scoped%, hold_scoped
HotKey, *%key_increase_norecoil_amount%, increase_norecoil_amount
HotKey, *%key_decrease_norecoil_amount%, decrease_norecoil_amount
HotKey, *%key_hold_trigger%, hold_trigger
HotKey, *%key_bhop%, toggle_bhop
HotKey, *%key_jump%, hold_jump

return

hold_scoped:

if(weapon == 12 || weapon == 13){
	scoped := true
	KeyWait, %key_hold_scoped%
	scoped := false
}

return

toggle_bhop:

bhop := !bhop

if(show_gui){
	if(bhop){
		GuiControl, , BHOPTEXT, %key_bhop% - toggle: On
		Gui, Font, cGreen
		GuiControl, Font, BHOPTEXT
	}else{
		GuiControl, , BHOPTEXT, %key_bhop% - toggle: Off
		Gui, Font, cRed
		GuiControl, Font, BHOPTEXT
	}
}
if(show_tooltip){
	if(bhop)
		Tooltip, BHop: On
	else
		Tooltip, BHop: Off
	SetTimer, ResetTooltip, -500
}

return

hold_jump:

if(bhop){
	While GetKeyState(key_jump, "P"){
		if(bhop_auto_strafe){
			Send {%key_jump% down}
			MouseGetPos, thisX, thisY
			Sleep 10
			if(previouslyLeft && lastX < thisX){
				Send {%key_strafe_left% up}
				Send {%key_strafe_right% down}
				previouslyRight := true
				previouslyLeft := false
			}else if(previouslyRight && lastX > thisX){
				Send {%key_strafe_right% up}
				Send {%key_strafe_left% down}
				previouslyRight := false
				previouslyLeft := true
			}else if(!previouslyLeft && !previouslyRight){
				if(A_Index == 1){
					lastX := thisX
				}
				if(lastX < thisX){
					Send {%key_strafe_right% down}
					previouslyRight := true
				}else if(lastX > thisX){
					Send {%key_strafe_left% down}
					previouslyLeft := true
				}
			}else if(lastX == thisX){
				if(previouslyLeft){
					Send {%key_strafe_left% up}
					previouslyLeft := false
				}
				if(previouslyRight){
					Send {%key_strafe_right% up}
					previouslyRight := false
				}
			}
			lastX := thisX
			Send {%key_jump% up}
			Sleep 10
		}else{
			Send {%key_jump% down}
			Sleep 10
			Send {%key_jump% up}
			Sleep 10
		}
	}
	if(bhop_auto_strafe){
		if(previouslyLeft){
			Send {%key_strafe_left% up}
			previouslyLeft := false
		}
		if(previouslyRight){
			Send {%key_strafe_right% up}
			previouslyRight := false
		}
	}
}else{
	Send {%key_jump% down}
	KeyWait, %key_jump%
	Send {%key_jump% up}
}

return

SENSCHANGED:

GuiControlGet, SENSITIVITY
sensitivity := SENSITIVITY
modifier := 2.52 / sensitivity

return

SCOPEDSENSCHANGED:

GuiControlGet, SCOPEDSENSITIVITY
scopedSensitivity := SCOPEDSENSITIVITY

return

hold_trigger:

MouseGetPos, spotX, spotY
spotX := spotX + offsetX
spotY := spotY + offsetY

While GetKeyState(key_hold_trigger, "P"){
	if(previouslyTrigger){
		PixelGetColor, color, %spotX%, %spotY%, RGB
		splitColor(color, r1, g1, b1)
		splitColor(lastColor, r2, g2, b2)
		if((r1 > r2 + tolerance || r1 < r2 - tolerance) || (g1 > g2 + tolerance || g1 < g2 - tolerance) || (b1 > b2 + tolerance || b1 < b2 - tolerance)){
			Sleep %trigger_delay%
			Random, tempRand, 30, 50
			Send {Blind}{%key_shoot% down}
			Sleep %tempRand%
			Send {Blind}{%key_shoot% up}
		}
		lastColor := color
	}else{
		PixelGetColor, lastColor, %spotX%, %spotY%, RGB
		previouslyTrigger := true
	}
	Sleep 20
}
previouslyTrigger := false

return

shoot:

GuiControlGet, NORECOILAMT
if(noRecoil && autofire){
	totalMouseX := 0
	totalMouseY := 0
	GetKeyState(key_shoot, "P")
	While GetKeyState(key_shoot, "P"){
		Send {Blind}{%key_shoot% down}
		Sleep 10
		Send {Blind}{%key_shoot% up}
		if(firstShotRestTime > firstShotRestTimeMax){
			mouseXY(0, NORECOILAMT)
			Sleep 10
		}else{
			firstShotRestTime += 1
			Sleep 10
		}
	}
	if(return_to_start){
		Sleep 50
		totalX := 0
		Loop, 30
		{
			Random, tempRand, -1, 1
			totalX := totalX + tempRand
			mouseXY((-totalMouseX / 30) + tempRand, -totalMouseY / 30, false)
			Sleep %return_to_start_delay%
		}
		Loop, 5
		{
			mouseXY(-totalX / 5, 0)
			Sleep 10
		}
	}
}else if(noRecoil){
	totalMouseX := 0
	totalMouseY := 0
	Send {Blind}{%key_shoot% down}
	previouslyCrouched := GetKeyState(key_crouch, "P")
	While GetKeyState(key_shoot, "P"){
		noRecoilIndex := noRecoilIndex + 1
		if((only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P"))){
		}
		if((GetKeyState(key_crouch, "P") && only_norecoil_when_crouched) || (!only_norecoil_when_crouched)){
			if(weapon == 1){ ;AK-47
				pattern_current_xy := ak_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 / ak47_offset * modifier
				current_xy2 := current_xy2 / ak47_offset * modifier
				
				;average current and next points
				;middlePointX := current_xy1 / 4
				;middlePointY := current_xy2 / 4
				
				if(29 == noRecoilIndex){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
				}else{
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / ak47_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / ak47_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / ak47_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / ak47_waitoffset
				}
			}else if(weapon == 2){ ;M4A4
				pattern_current_xy := m4_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				if(InStr("1;7;8;9;10;11;12;13;14;19;20;21;22;23;24", noRecoilIndex)){
					current_xy1 := current_xy1 / m4_offset2 * modifier
					current_xy2 := current_xy2 / m4_offset2 * modifier
				}else{
					current_xy1 := current_xy1 / m4_offset * modifier
					current_xy2 := current_xy2 / m4_offset * modifier
				}
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				
				if(InStr("1;7;8;9;10;11;12;13;14;19;20;21;22;23;24", noRecoilIndex)){
					waitTime := 88 / m4_waitoffset2
				}else{
					waitTime := 87 / m4_waitoffset
				}
				
				if(InStr("4", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 + 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 + 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 + 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 + 5 * modifier)
					Sleep %waitTime%
				}else if(InStr("7", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 - 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("8", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 3 * modifier, current_xy2 - 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("9", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 1 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 1 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 1 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 1 * modifier, current_xy2)
					Sleep %waitTime%
				}else if(InStr("10", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2 - 10 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("11", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("13", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 - 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 - 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("14", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 5 * modifier, current_xy2)
					Sleep %waitTime%
				}else if(InStr("15", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 10 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("16", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 10 * modifier, current_xy2 + 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("17", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 3 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("18", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 10 * modifier, current_xy2)
					Sleep %waitTime%
				}else if(InStr("19", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 10 * modifier, current_xy2 + 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 10 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("23", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 20 * modifier, current_xy2 + 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("24", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 10 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("29", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
				}else{
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}
			}else if(weapon == 3){ ;M4A1-S
				pattern_current_xy := m4a1s_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 / m4a1s_offset * modifier
				current_xy2 := current_xy2 / m4a1s_offset * modifier
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				
				if(InStr("1", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
				}else if(InStr("6", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 1 * modifier, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 1 * modifier, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 1 * modifier, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
				}else if(InStr("7", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 - 2 * modifier)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 - 2 * modifier)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 - 2 * modifier)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 - 2 * modifier)
					Sleep 99 / m4a1s_waitoffset
				}else if(InStr("9", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 1 * modifier, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
				}else if(InStr("11;13", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 1 * modifier, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 1 * modifier, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
				}else if(InStr("14", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 2 * modifier, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 2 * modifier, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 1 * modifier, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 1 * modifier, current_xy2)
					Sleep 99 / m4a1s_waitoffset
				}else{
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep 99 / m4a1s_waitoffset
				}
			}else if(weapon == 4){ ;GALIL AR
				pattern_current_xy := galil_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 / galil_waitoffset * modifier
				current_xy2 := current_xy2 / galil_waitoffset * modifier
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				
				if(16 == noRecoilIndex){
					waitTime := 50 / galil_waitoffset
				}else{
					waitTime := 90 / galil_waitoffset
				}
				
				if(InStr("4", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 10 * modifier, current_xy2 + 2 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 10 * modifier, current_xy2 + 2 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 + 2 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("9", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 + 3 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 + 3 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2 + 3 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
				}else if(InStr("10", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("11", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 5 * modifier, current_xy2 - 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 - 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 - 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 - 5 * modifier)
					Sleep %waitTime%
				}else if(InStr("15", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 1 * modifier, current_xy2 + 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 1 * modifier, current_xy2)
					Sleep %waitTime%
				}else if(InStr("16", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2 + 10 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("17;18", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 10 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 + 3 * modifier, current_xy2)
					Sleep %waitTime%
				}else if(InStr("19", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2 + 5 * modifier)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("20;21", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}else if(InStr("25;26", noRecoilIndex)){
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 1 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 1 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 1 * modifier, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1 - 5 * modifier, current_xy2)
					Sleep %waitTime%
				}else{
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
					if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
						mouseXY(current_xy1, current_xy2)
					Sleep %waitTime%
				}
			}else if(weapon == 5){ ;FAMAS
				pattern_current_xy := famas_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 / famas_waitoffset * modifier
				current_xy2 := current_xy2 / famas_waitoffset * modifier
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				
				if(InStr("12", noRecoilIndex)){
					waitTime := 87 / famas_waitoffset
				}if(InStr("18;20;22", noRecoilIndex)){
					waitTime := 80 / famas_waitoffset
				}if(InStr("21", noRecoilIndex)){
					waitTime := 84 / famas_waitoffset
				}else{
					waitTime := 88 / famas_waitoffset
				}
				
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
			}else if(weapon == 6){ ;UMP-45
				pattern_current_xy := ump45_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				if(InStr("18;21", noRecoilIndex)){
					current_xy1 := current_xy1 / ump45_offset2 * modifier
					current_xy2 := current_xy2 / ump45_offset2 * modifier
				}else{
					current_xy1 := current_xy1 / ump45_offset * modifier
					current_xy2 := current_xy2 / ump45_offset * modifier
				}
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				
				if(InStr("18;21", noRecoilIndex)){
					waitTime := 85 / ump45_waitoffset2
				}else{
					waitTime := 90 / ump45_waitoffset
				}
				
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
			}else if(weapon == 7){ ;MP7
				pattern_current_xy := mp7_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 / mp7_offset * modifier
				current_xy2 := current_xy2 / mp7_offset * modifier
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				waitTime := 40 / mp7_waitoffset
				
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
			}else if(weapon == 8){ ;P90
				pattern_current_xy := p90_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 * 3.2 / 3.15 / p90_offset * modifier
				current_xy2 := current_xy2 * 3.2 / 3.15 / p90_offset * modifier
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				waitTime := 40 / p90_waitoffset
				
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
			}else if(weapon == 9){ ;MAC-10
				pattern_current_xy := mac10_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 * 3.2 / 8 / mac10_offset * modifier
				current_xy2 := current_xy2 * 3.2 / 2 / mac10_offset * modifier
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				waitTime := 84 / mac10_waitoffset
				
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
			}else if(weapon == 10){ ;MP9
				pattern_current_xy := mp9_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 * 3.2 / 3.2 / mp9_offset * modifier
				current_xy2 := current_xy2 * 3.2 / 1.9 / mp9_offset * modifier
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				waitTime := 20 / mp9_waitoffset
				
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
			}else if(weapon == 11){ ;PP-Bizon
				pattern_current_xy := bizon_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 * 3.2 / 2.52 / bizon_offset * modifier
				current_xy2 := current_xy2 * 3.2 / 1.8 / bizon_offset * modifier
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				waitTime := 87 / bizon_waitoffset
				
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
			}else if(weapon == 12){ ;SG553
				if(scoped)
					scopedMod := 1.2 / scopedSensitivity
				else
					scopedMod := 1
				
				pattern_current_xy := sg553_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 * 3.2 / 2.52 / sg553_offset * modifier * scopedMod
				current_xy2 := current_xy2 * 3.2 / 1.8 / sg553_offset * modifier * scopedMod
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				waitTime := 86 / sg553_waitoffset
				
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
			}else if(weapon == 13){ ;AUG
				if(scoped)
					scopedMod := 1.2 / scopedSensitivity
				else
					scopedMod := 1
				
				pattern_current_xy := aug_pattern%noRecoilIndex%
				StringSplit, current_xy, pattern_current_xy, `,
				current_xy1 := current_xy1 * 3.2 / 3.15 / aug_offset * modifier * scopedMod
				current_xy2 := current_xy2 * 3.2 / 1.8 / aug_offset * modifier * scopedMod
				
				;average current and next points
				;middlePointX := current_xy1 / 3
				;middlePointY := current_xy2 / 3
				waitTime := 85 / aug_waitoffset
				
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
				if(!(only_norecoil_when_crouched && !previouslyCrouched && GetKeyState(key_crouch, "P")))
					mouseXY(current_xy1, current_xy2)
				Sleep %waitTime%
			}else if(weapon == 0){ ;Generic
				if(firstShotRestTime > firstShotRestTimeMax){
					if(firstShotRecoilTime > firstShotRecoilTimeMax){
						mouseXY(0, NORECOILAMT)
						Random, tempRand, 200, 220
						Sleep %tempRand%
					}else{
						firstShotRecoilTime += 1
						mouseXY(0, NORECOILAMT * 2)
						Random, tempRand, 20, 40
						Sleep %tempRand%
					}
				}else{
					firstShotRestTime += 1
					Random, tempRand, 20, 40
					Sleep %tempRand%
				}
			}
		}
	}
	Send {Blind}{%key_shoot% up}
	SetTimer, ResetNoRecoilIndex, -75
	if(return_to_start){
		Sleep 50
		totalX := 0
		Loop, 30
		{
			Random, tempRand, -1, 1
			totalX := totalX + tempRand
			mouseXY((-totalMouseX / 30) + tempRand, -totalMouseY / 30, false)
			Sleep %return_to_start_delay%
		}
		Loop, 5
		{
			mouseXY(-totalX / 5, 0)
			Sleep 10
		}
	}
}else if(autofire){
	GetKeyState(key_shoot, "P")
	While GetKeyState(key_shoot, "P"){
		Send {Blind}{%key_shoot% down}
		Sleep 10
		Send {Blind}{%key_shoot% up}
		Sleep 10
	}
}else{
	Send {Blind}{%key_shoot% down}
	KeyWait, %key_shoot%
	Send {Blind}{%key_shoot% up}
}

firstShotRecoilTime := 0
firstShotRestTime := 0

return

ResetNoRecoilIndex:

noRecoilIndex := 0

return

pause_script:

Suspend

return

generic_norecoil:

weapon := 0
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: Default
if(show_tooltip){
	Tooltip, Default
	SetTimer, ResetTooltip, -500
}

return

ak47_norecoil:

weapon := 1
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: AK-47
if(show_tooltip){
	Tooltip, AK-47
	SetTimer, ResetTooltip, -500
}

return


m4a4_norecoil:

weapon := 2
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: M4A4
if(show_tooltip){
	Tooltip, M4A4
	SetTimer, ResetTooltip, -500
}

return

m4a1s_norecoil:

weapon := 3
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: M4A1-S
if(show_tooltip){
	Tooltip, M4A1-S
	SetTimer, ResetTooltip, -500
}

return

galil_norecoil:

weapon := 4
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: Galil AR
if(show_tooltip){
	Tooltip, Galil AR
	SetTimer, ResetTooltip, -500
}

return

famas_norecoil:

weapon := 5
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: FAMAS
if(show_tooltip){
	Tooltip, FAMAS
	SetTimer, ResetTooltip, -500
}

return

ump45_norecoil:

weapon := 6
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: Ump-45
if(show_tooltip){
	Tooltip, Ump-45
	SetTimer, ResetTooltip, -500
}

return

mp7_norecoil:

weapon := 7
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: MP7
if(show_tooltip){
	Tooltip, MP7
	SetTimer, ResetTooltip, -500
}

return

p90_norecoil:

weapon := 8
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: P90
if(show_tooltip){
	Tooltip, P90
	SetTimer, ResetTooltip, -500
}

return

mac10_norecoil:

weapon := 9
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: Mac-10
if(show_tooltip){
	Tooltip, Mac-10
	SetTimer, ResetTooltip, -500
}

return

mp9_norecoil:

weapon := 10
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: MP9
if(show_tooltip){
	Tooltip, MP9
	SetTimer, ResetTooltip, -500
}

return

bizon_norecoil:

weapon := 11
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: PP-Bizon
if(show_tooltip){
	Tooltip, PP-Bizon
	SetTimer, ResetTooltip, -500
}

return

sg553_norecoil:

weapon := 12
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: SG553
if(show_tooltip){
	Tooltip, SG553
	SetTimer, ResetTooltip, -500
}

return

aug_norecoil:

weapon := 13
if(show_gui)
	GuiControl, , WEAPONRECOILTEXT, %key_generic_norecoil% - %key_aug_norecoil%: AUG
if(show_tooltip){
	Tooltip, AUG
	SetTimer, ResetTooltip, -500
}

return

increase_norecoil_amount:

if(show_gui){
	GuiControlGet, NORECOILAMT
	NORECOILAMT := NORECOILAMT + 1
	GuiControl, , NORECOILAMT, %NORECOILAMT%
}
if(show_tooltip){
	Tooltip, Amount: %NORECOILAMT%
	SetTimer, ResetTooltip, -500
}

return

decrease_norecoil_amount:

if(show_gui){
	GuiControlGet, NORECOILAMT
	NORECOILAMT := NORECOILAMT - 1
	GuiControl, , NORECOILAMT, %NORECOILAMT%
}
if(show_tooltip){
	Tooltip, Amount: %NORECOILAMT%
	SetTimer, ResetTooltip, -500
}

return

toggle_norecoil:

noRecoil := !noRecoil
if(noRecoil){
	if(show_gui){
		GuiControl, , NORECOILTEXT, %key_toggle_norecoil% - toggle: On
		Gui, Font, cGreen
		GuiControl, Font, NORECOILTEXT
	}
	if(show_tooltip){
		Tooltip, No Recoil On
		SetTimer, ResetTooltip, -500
	}
}else{
	if(show_gui){
		GuiControl, , NORECOILTEXT, %key_toggle_norecoil% - toggle: Off
		Gui, Font, cRed
		GuiControl, Font, NORECOILTEXT
	}
	if(show_tooltip){
		Tooltip, No Recoil Off
		SetTimer, ResetTooltip, -500
	}
}

return

toggle_autofire:

autofire := !autofire
if(autofire){
	if(show_gui){
		GuiControl, , AUTOFIRETEXT, %key_toggle_autofire% - toggle: On
		Gui, Font, cGreen
		GuiControl, Font, AUTOFIRETEXT
	}
	if(show_tooltip){
		Tooltip, Autofire On
		SetTimer, ResetTooltip, -500
	}
}else{
	GuiControl, , AUTOFIRETEXT, %key_toggle_autofire% - toggle: Off
	Gui, Font, cRed
	GuiControl, Font, AUTOFIRETEXT
	if(show_tooltip){
		Tooltip, Autofire Off
		SetTimer, ResetTooltip, -500
	}
}

return

;Functions

ResetTooltip:

Tooltip,

return

mouseXY(x, y, record := true)
{
	if(invert_y_axis){
		DllCall("mouse_event",uint,1,int,x,int,-y,uint,0,int,0)
		if(record){
			totalMouseX := totalMouseX + x
			totalMouseY := totalMouseY - y
		}
	}else{
		DllCall("mouse_event",uint,1,int,x,int,y,uint,0,int,0)
		if(record){
			totalMouseX := totalMouseX + x
			totalMouseY := totalMouseY + y
		}
	}
}

splitColor(color, ByRef r, ByRef g, ByRef 
{
    r := color >> 16 & 0xFF
    g := color >> 8 & 0xFF
    b := color & 0xFF
}

GuiClose:

FileDelete, %A_WorkingDir%\script_save.txt
FileAppend, %sensitivity%|%scopedSensitivity%, %A_WorkingDir%\script_save.txt

ExitApp

return

REAL_NORECOIL.rar


Edytowane przez foksio
Odnośnik do komentarza

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności