Макрос без отдачи для мыши Logitech .
--------------------------------------------------------------------------
---------------- Basic Variable -----------------------------
---------------- Do not edit ---------------------
--------------------------------------------------------------------------
local current_weapon = "none"
--------------------------------------------------------------------------
---------------- Basic Setting ------------------------------
--------------------------------------------------------------------------
---- key bind ----
local ump9_key = 8
local akm_key = nil
local m16a4_key = 5
local m416_key = 7
local scarl_key = nil
local uzi_key = nil
local set_off_key = 6
---- fire key ----
local fire_key = "Pause"
local mode_switch_key = "capslock"
---- ignore key ----
---- can use "lalt", "ralt", "alt" "lshift", "rshift", "shift" "lctrl", "rctrl", "ctrl"
local ignore_key = "lshift"
--- Sensitivity in Game
--- default is 50.0
local target_sensitivity = 50
local scope_sensitivity = 50
local scope4x_sensitivity = 50
---- Obfs setting
---- Two firing time intervals = weapon_speed * interval_ratio * ( 1 + random_seed * ( 0 ~ 1))
local weapon_speed_mode = false
local obfs_mode = true
local interval_ratio = 0.75
local random_seed = 1
--------------------------------------------------------------------------
---------------- Recoil Table ------------------------------
---------------- You can fix the value here ------------------------------
--------------------------------------------------------------------------
local recoil_table = {}
recoil_table["ump9"] = {
basic={18.3,18.3,18.3,18.3,18.3,18.3,18.3,23,23,23,23,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3},
quadruple={83.3,83.3,83.3,83.3,83.3,83.3,83.3,116.7,116.7,116.7,116.7,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3},
speed = 92
}
recoil_table["akm"] = {
basic={23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,28,28,28,28,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7},
quadruple={66.7,66.7,66.7,66.7,66.7,66.7,66.7,66.7,66.7,66.7,66.7,123.3,123.3,123.3,123.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3},
speed = 100
}
recoil_table["m16a4"] = {
basic={25.7,25.7,25.7,25.7,25.7,25.7,46.7,46.7,46.7,46.7,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30},
quadruple={86.7,86.7,86.7,86.7,86.7,86.7,86.7,150,150,150,150,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7},
speed = 75
}
recoil_table["m416"] = {
basic={26.7,26.7,26.7,26.7,26.7,26.7,37,37,37,37,37,31,31,31,31,31,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35},
quadruple={86.7,86.7,86.7,86.7,86.7,86.7,86.7,150,150,150,150,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7},
speed = 86
}
recoil_table["scarl"] = {
basic={22.3,22.3,22.3,22.3,22.3,22.3,22.3,29.3,29.3,29.3,29.3,26.7,26.7,26.7,26.7,26.7,26.7,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26},
quadruple={86.7,86.7,86.7,86.7,86.7,86.7,86.7,150,150,150,150,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7},
speed = 96
}
recoil_table["uzi"] = {
basic={18.3,18.3,18.3,18.3,18.3,18.3,18.3,23,23,23,23,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3},
quadruple={13.3,13.3,13.3,13.3,13.3,21.7,21.7,21.7,21.7,21.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7},
speed = 48
}
recoil_table["none"] = {
basic={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
quadruple={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
speed = 60
}
--------------------------------------------------------------------------
---------------- Function ------------------------------
--------------------------------------------------------------------------
function convert_sens(unconvertedSens)
return 0.002 * math.pow(10, unconvertedSens / 50)
end
function calc_sens_scale(sensitivity)
return convert_sens(sensitivity)/convert_sens(50)
end
local target_scale = calc_sens_scale(target_sensitivity)
local scope_scale = calc_sens_scale(scope_sensitivity)
local scope4x_scale = calc_sens_scale(scope4x_sensitivity)
function recoil_mode()
if IsKeyLockOn(mode_switch_key) then
return "quadruple";
else
return "basic";
end
end
function recoil_value(_weapon,_duration)
local _mode = recoil_mode()
local step = (math.floor(_duration/100)) + 1
if step > 40 then
step = 40
end
local weapon_recoil = recoil_table[_weapon][_mode][step]
-- OutputLogMessage("weapon_recoil = %s\n", weapon_recoil)
local weapon_speed = 30
if weapon_speed_mode then
weapon_speed = recoil_table[_weapon]["speed"]
end
-- OutputLogMessage("weapon_speed = %s\n", weapon_speed)
local weapon_intervals = weapon_speed
if obfs_mode then
local coefficient = interval_ratio * ( 1 + random_seed * math.random())
weapon_intervals = math.floor(coefficient * weapon_speed)
end
-- OutputLogMessage("weapon_intervals = %s\n", weapon_intervals)
recoil_recovery = weapon_recoil * weapon_intervals / 100
-- issues/3
if IsMouseButtonPressed(2) then
recoil_recovery = recoil_recovery / target_scale
elseif recoil_mode() == "basic" then
recoil_recovery = recoil_recovery / scope_scale
elseif recoil_mode() == "quadruple" then
recoil_recovery= recoil_recovery / scope4x_scale
end
return weapon_intervals,recoil_recovery
end
--------------------------------------------------------------------------
---------------- OnEvent ------------------------------
--------------------------------------------------------------------------
function OnEvent(event, arg)
OutputLogMessage("event = %s, arg = %d\n", event, arg)
if (event == "PROFILE_ACTIVATED") then
EnablePrimaryMouseButtonEvents(true)
elseif event == "PROFILE_DEACTIVATED" then
current_weapon = "none"
shoot_duration = 0.0
ReleaseKey(fire_key)
ReleaseMouseButton(1)
end
if (event == "MOUSE_BUTTON_PRESSED" and arg == set_off_key) then
current_weapon = "none"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == akm_key) then
current_weapon = "akm"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == m16a4_key) then
current_weapon = "m16a4"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == m416_key) then
current_weapon = "m416"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == ump9_key) then
current_weapon = "ump9"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == uzi_key) then
current_weapon = "uzi"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == scarl_key) then
current_weapon = "scarl"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
-- button 1 : Shoot
if ((current_weapon == "none") or IsModifierPressed(ignore_key)) then
PressKey(fire_key)
repeat
Sleep(30)
until not IsMouseButtonPressed(1)
ReleaseKey(fire_key)
else
local shoot_duration = 0.0
repeat
local intervals,recovery = recoil_value(current_weapon,shoot_duration)
PressAndReleaseKey(fire_key)
MoveMouseRelative(0, recovery )
Sleep(intervals)
shoot_duration = shoot_duration + intervals
until not IsMouseButtonPressed(1)
end
elseif (event == "MOUSE_BUTTON_RELEASED" and arg == 1) then
ReleaseKey(fire_key)
end
end
6 видов оружия
Как использовать
скачать и установить logitech gaming software[LGS]
http://support.logitech.com/software/lgs
Создать новый профиль в logitech gaming software
указать путь к файлу TslGame.exe, обязательно поставить галочку(Заблокировать профиль на время игры)
Изменения настроек в макросе.
Настройка чувствительности мыши в игре
Всегда после внесения изменения в макрос нажимайте Ctrl + S для сохранения и перезапуска макроса.
Настройка мыши
как сменить клавишу и настроить мышку вы найдете в интернете( видео предостаточно на эту тему)
Макрос запускается автоматически при запуске игры. Нашли в игре оружие из списка нажали кнопку на которое оно настроено,нажали кнопку Pause на мышке и оружие начнет стрелять без отдачи. Не переключайте оружие в автоматическую стрельбу!!!.
--------------------------------------------------------------------------
---------------- Basic Variable -----------------------------
---------------- Do not edit ---------------------
--------------------------------------------------------------------------
local current_weapon = "none"
--------------------------------------------------------------------------
---------------- Basic Setting ------------------------------
--------------------------------------------------------------------------
---- key bind ----
local ump9_key = 8
local akm_key = nil
local m16a4_key = 5
local m416_key = 7
local scarl_key = nil
local uzi_key = nil
local set_off_key = 6
---- fire key ----
local fire_key = "Pause"
local mode_switch_key = "capslock"
---- ignore key ----
---- can use "lalt", "ralt", "alt" "lshift", "rshift", "shift" "lctrl", "rctrl", "ctrl"
local ignore_key = "lshift"
--- Sensitivity in Game
--- default is 50.0
local target_sensitivity = 50
local scope_sensitivity = 50
local scope4x_sensitivity = 50
---- Obfs setting
---- Two firing time intervals = weapon_speed * interval_ratio * ( 1 + random_seed * ( 0 ~ 1))
local weapon_speed_mode = false
local obfs_mode = true
local interval_ratio = 0.75
local random_seed = 1
--------------------------------------------------------------------------
---------------- Recoil Table ------------------------------
---------------- You can fix the value here ------------------------------
--------------------------------------------------------------------------
local recoil_table = {}
recoil_table["ump9"] = {
basic={18.3,18.3,18.3,18.3,18.3,18.3,18.3,23,23,23,23,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3},
quadruple={83.3,83.3,83.3,83.3,83.3,83.3,83.3,116.7,116.7,116.7,116.7,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3},
speed = 92
}
recoil_table["akm"] = {
basic={23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,28,28,28,28,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7},
quadruple={66.7,66.7,66.7,66.7,66.7,66.7,66.7,66.7,66.7,66.7,66.7,123.3,123.3,123.3,123.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3},
speed = 100
}
recoil_table["m16a4"] = {
basic={25.7,25.7,25.7,25.7,25.7,25.7,46.7,46.7,46.7,46.7,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30},
quadruple={86.7,86.7,86.7,86.7,86.7,86.7,86.7,150,150,150,150,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7},
speed = 75
}
recoil_table["m416"] = {
basic={26.7,26.7,26.7,26.7,26.7,26.7,37,37,37,37,37,31,31,31,31,31,32,32,32,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35},
quadruple={86.7,86.7,86.7,86.7,86.7,86.7,86.7,150,150,150,150,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7},
speed = 86
}
recoil_table["scarl"] = {
basic={22.3,22.3,22.3,22.3,22.3,22.3,22.3,29.3,29.3,29.3,29.3,26.7,26.7,26.7,26.7,26.7,26.7,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26},
quadruple={86.7,86.7,86.7,86.7,86.7,86.7,86.7,150,150,150,150,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7},
speed = 96
}
recoil_table["uzi"] = {
basic={18.3,18.3,18.3,18.3,18.3,18.3,18.3,23,23,23,23,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3},
quadruple={13.3,13.3,13.3,13.3,13.3,21.7,21.7,21.7,21.7,21.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7},
speed = 48
}
recoil_table["none"] = {
basic={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
quadruple={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
speed = 60
}
--------------------------------------------------------------------------
---------------- Function ------------------------------
--------------------------------------------------------------------------
function convert_sens(unconvertedSens)
return 0.002 * math.pow(10, unconvertedSens / 50)
end
function calc_sens_scale(sensitivity)
return convert_sens(sensitivity)/convert_sens(50)
end
local target_scale = calc_sens_scale(target_sensitivity)
local scope_scale = calc_sens_scale(scope_sensitivity)
local scope4x_scale = calc_sens_scale(scope4x_sensitivity)
function recoil_mode()
if IsKeyLockOn(mode_switch_key) then
return "quadruple";
else
return "basic";
end
end
function recoil_value(_weapon,_duration)
local _mode = recoil_mode()
local step = (math.floor(_duration/100)) + 1
if step > 40 then
step = 40
end
local weapon_recoil = recoil_table[_weapon][_mode][step]
-- OutputLogMessage("weapon_recoil = %s\n", weapon_recoil)
local weapon_speed = 30
if weapon_speed_mode then
weapon_speed = recoil_table[_weapon]["speed"]
end
-- OutputLogMessage("weapon_speed = %s\n", weapon_speed)
local weapon_intervals = weapon_speed
if obfs_mode then
local coefficient = interval_ratio * ( 1 + random_seed * math.random())
weapon_intervals = math.floor(coefficient * weapon_speed)
end
-- OutputLogMessage("weapon_intervals = %s\n", weapon_intervals)
recoil_recovery = weapon_recoil * weapon_intervals / 100
-- issues/3
if IsMouseButtonPressed(2) then
recoil_recovery = recoil_recovery / target_scale
elseif recoil_mode() == "basic" then
recoil_recovery = recoil_recovery / scope_scale
elseif recoil_mode() == "quadruple" then
recoil_recovery= recoil_recovery / scope4x_scale
end
return weapon_intervals,recoil_recovery
end
--------------------------------------------------------------------------
---------------- OnEvent ------------------------------
--------------------------------------------------------------------------
function OnEvent(event, arg)
OutputLogMessage("event = %s, arg = %d\n", event, arg)
if (event == "PROFILE_ACTIVATED") then
EnablePrimaryMouseButtonEvents(true)
elseif event == "PROFILE_DEACTIVATED" then
current_weapon = "none"
shoot_duration = 0.0
ReleaseKey(fire_key)
ReleaseMouseButton(1)
end
if (event == "MOUSE_BUTTON_PRESSED" and arg == set_off_key) then
current_weapon = "none"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == akm_key) then
current_weapon = "akm"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == m16a4_key) then
current_weapon = "m16a4"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == m416_key) then
current_weapon = "m416"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == ump9_key) then
current_weapon = "ump9"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == uzi_key) then
current_weapon = "uzi"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == scarl_key) then
current_weapon = "scarl"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
-- button 1 : Shoot
if ((current_weapon == "none") or IsModifierPressed(ignore_key)) then
PressKey(fire_key)
repeat
Sleep(30)
until not IsMouseButtonPressed(1)
ReleaseKey(fire_key)
else
local shoot_duration = 0.0
repeat
local intervals,recovery = recoil_value(current_weapon,shoot_duration)
PressAndReleaseKey(fire_key)
MoveMouseRelative(0, recovery )
Sleep(intervals)
shoot_duration = shoot_duration + intervals
until not IsMouseButtonPressed(1)
end
elseif (event == "MOUSE_BUTTON_RELEASED" and arg == 1) then
ReleaseKey(fire_key)
end
end
6 видов оружия
- ump9
- AKM
- m16a4
- m416
- scarl
- uzi
Как использовать
скачать и установить logitech gaming software[LGS]
http://support.logitech.com/software/lgs
Создать новый профиль в logitech gaming software
указать путь к файлу TslGame.exe, обязательно поставить галочку(Заблокировать профиль на время игры)
- Создать в профиле PABG сценарий.
- Вставить в него макрос.
- Нажать Ctrl + S для сохранения.
Изменения настроек в макросе.
- Назначения кнопок оружия
- Вы можете узнать номера кнопок из окна журнала logitech. Когда вы нажмете кнопку мыши, появится запрос event =
MOUSE_BUTTON_RELEASED, arg = X, X - номер кнопки.
- Существует 6 типов оружия. если у вас мышь Logitech с менее чем 6 кнопками, и вы не хотите использовать одно или несколько видов оружия из списка пропишите в макросе на против оружия nil.
- Необходимо назначить кнопку для отмены макроса отдачи. set_off_key
- Назначения клавиш запуска макроса и переключения режима стрельбы
- отмените кнопку Fire в игре с левой кнопки мыши и установите ее на кнопку Pause . Это должно быть согласованным между макросом и настройкой игры.
- При нажатие mode switch key, отдача уменьшается на 3-4 раза, в соответствии с режимом 4-кратного прицела.
- По умолчанию в макросе fire кнопка pause, mode switch key кнопка capslock.
- всегда держите свое оружие в режиме одиночного огня. Сценарий автоматически запускается в автоматическом режиме,
включая M16A1s
Настройка чувствительности мыши в игре
Всегда после внесения изменения в макрос нажимайте Ctrl + S для сохранения и перезапуска макроса.
Настройка мыши
- установка кнопки fire (Pause) вместо Left Mouse Button или на любую другую кнопку которая будет удобна для стрельбы. иначе не сможете перетаскивать вещи в рюкзаке и лутатся.
как сменить клавишу и настроить мышку вы найдете в интернете( видео предостаточно на эту тему)
Макрос запускается автоматически при запуске игры. Нашли в игре оружие из списка нажали кнопку на которое оно настроено,нажали кнопку Pause на мышке и оружие начнет стрелять без отдачи. Не переключайте оружие в автоматическую стрельбу!!!.
Последнее редактирование модератором: