Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------------------------------------- ---------------------
- --------------------------------------------------------------------------
- local current_weapon = "none"
- --------------------------------------------------------------------------
- ---------------- Basic Setting ------------------------------
- --------------------------------------------------------------------------
- ---- key bind ----
- local ump9_key = 3
- local akm_key = 5
- local m16a4_key = nil
- local m416_key = 4
- ---------------- Basic Variable -----------------------------
- ---------------- Do not edit -------------------------------------
- local scarl_key = nil
- local uzi_key = nil
- local set_off_key = nil
- ---- fire key ----
- local fire_key = "F8"
- local full_mode_key = "numlock"
- local mode_switch_key = "capslock"
- ---- ignore key ----
- ---- can use "lalt", "ralt", "alt" "lshift", "rshift", "shift" "lctrl", "rctrl", "ctrl"
- local ignore_key = "lalt"
- --- Sensitivity in Game
- --- default is 50.0
- local target_sensitivity = 53
- local scope_sensitivity = 53
- local full_sensitivity = 53
- 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 = false
- local obfs_mode = true
- local interval_ratio = 0.75
- local random_seed = 1
- -- local fullmode = false
- local fullmode = false
- --------------------------------------------------------------------------
- ---------------- Recoil Table ------------------------------
- ---------------- You can fix the value here ------------------------------
- --------------------------------------------------------------------------
- local recoil_table = {}
- recoil_table["ump9"] = {
- basic={28,30,30,30,37,30,31,36,37,37,37,40,40,39,39,41,41,42,44,42,43,40,41,44,40,40,41,42,43},
- full={0},
- quadruple={0},
- speed = 90
- }
- recoil_table["akm"] = {
- basic={56,40,38,44,48,55,56,61,65,65,67,68,67,71,74,70,65,66,72,74,72,71,70,70,70,72,74,76,72},
- full={0},
- quadruple={0},
- speed = 100
- }
- recoil_table["m16a4"] = {
- basic={47,35,38,44,58,61,70,67,73,74,72,69,72,71,72,70,72,70,69,71},
- full={0},
- quadruple={0},
- speed = 80
- }
- recoil_table["m416"] = {
- basic={49,37,38,39,43,46,47,47,48,49,50,49,55,56,58,60},
- full={0},
- quadruple={},
- speed = 90
- }
- recoil_table["scarl"] = {
- basic={44,28,32,40,44, 45,48,48,46,53, 54,56,58,57,56,62},
- full={0},
- quadruple={0},
- speed = 100
- }
- recoil_table["uzi"] = {
- basic={18,18,18,19,19,21,24,24,30,26,30,30,34,34,38},
- full={0},
- quadruple={0},
- 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 full_scale = calc_sens_scale(full_sensitivity)
- local scope4x_scale = calc_sens_scale(scope4x_sensitivity)
- function recoil_mode()
- if IsKeyLockOn(mode_switch_key) then
- return "quadruple";
- elseif IsKeyLockOn(full_mode_key) and fullmode then
- return "full"
- 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() == "full" then
- recoil_recovery = recoil_recovery / full_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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement