From 5a05b996b1deead069754b53ce994d72c58522f8 Mon Sep 17 00:00:00 2001 From: treywisp Date: Sun, 16 Nov 2025 17:27:37 +0100 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?/=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastanim.lua | 173 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 131 insertions(+), 42 deletions(-) diff --git a/fastanim.lua b/fastanim.lua index 250e570..0b87493 100644 --- a/fastanim.lua +++ b/fastanim.lua @@ -29,7 +29,7 @@ For more information, please refer to script_author("treywisp") script_name("fastanim") -script_version("1.0") +script_version("1.1") local imgui = require("mimgui") local inicfg = require("inicfg") @@ -66,6 +66,16 @@ local settings = inicfg.load({ speed = 1.0 }, + stun = { + active = false, + speed = 1.0 + }, + + swim = { + active = false, + speed = 1.0 + }, + gun = { active = false, speed = 1.0 @@ -81,6 +91,11 @@ local settings = inicfg.load({ speed = 1.0 }, + rifle = { + active = false, + speed = 1.0, + }, + shotgun = { active = false, speed = 1.0 @@ -121,6 +136,16 @@ local imgui_buffers = { speed = imgui.new.float(settings.fight.speed) }, + stun = { + active = imgui.new.bool(settings.stun.active), + speed = imgui.new.float(settings.stun.speed) + }, + + swim = { + active = imgui.new.bool(settings.swim.active), + speed = imgui.new.float(settings.swim.speed) + }, + gun = { active = imgui.new.bool(settings.gun.active), speed = imgui.new.float(settings.gun.speed) @@ -136,6 +161,11 @@ local imgui_buffers = { speed = imgui.new.float(settings.m4.speed) }, + rifle = { + active = imgui.new.bool(settings.rifle.active), + speed = imgui.new.float(settings.rifle.speed) + }, + shotgun = { active = imgui.new.bool(settings.shotgun.active), speed = imgui.new.float(settings.shotgun.speed) @@ -212,13 +242,6 @@ local anims = { "WOMAN_WALKPRO", -- 1285 "WOMAN_WALKSEXY", -- 1286 "WOMAN_WALKSHOP", -- 1287 - "SWIM_BREAST", -- 1538 - "SWIM_CRAWL", -- 1539 - "SWIM_DIVE_UNDER", -- 1540 - "SWIM_GLIDE", -- 1541 - "SWIM_JUMPOUT", -- 1542 - "SWIM_TREAD", -- 1543 - "SWIM_UNDER", -- 1544 "CLIMB_IDLE", -- 1061 "CLIMB_JUMP", -- 1062 "CLIMB_JUMP2FALL", -- 1063 @@ -363,6 +386,27 @@ local anims = { "FIGHTSH_RIGHT", -- 1148 }, + stun = { + "HIT_BACK", -- 1173 + "HIT_BEHIND", -- 1174 + "HIT_FRONT", -- 1175 + "HIT_GUN_BUTT", -- 1176 + "HIT_L", -- 1177 + "HIT_R", -- 1178 + "HIT_WALK", -- 1179 + "HIT_WALL", -- 1180 + }, + + swim = { + "SWIM_BREAST", -- 1538 + "SWIM_CRAWL", -- 1539 + "SWIM_DIVE_UNDER", -- 1540 + "SWIM_GLIDE", -- 1541 + "SWIM_JUMPOUT", -- 1542 + "SWIM_TREAD", -- 1543 + "SWIM_UNDER", -- 1544 + }, + gun = { "GUNCROUCHBWD", -- 1158 "GUNCROUCHFWD", -- 1159 @@ -395,6 +439,15 @@ local anims = { "RIFLE_LOAD", -- 1369 }, + -- искренне лень переписывать цикл + rifle = { + "RIFLE_CROUCHFIRE", -- 1365 + "RIFLE_CROUCHLOAD", -- 1366 + "RIFLE_FIRE", -- 1367 + "RIFLE_FIRE_POOR", -- 1368 + "RIFLE_LOAD", -- 1369 + }, + shotgun = { "SHOTGUN_CROUCHFIRE", -- 1449 "SHOTGUN_FIRE", -- 1450 @@ -456,7 +509,7 @@ end) imgui.OnFrame(function() return imgui_buffers.states.window_state[0] end, function(player) imgui.SetNextWindowPos(imgui.ImVec2(500, 500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5)) imgui.SetNextWindowSize(imgui.ImVec2(445, 550), imgui.Cond.Always) - imgui.Begin(u8"fastanim v1.0", imgui_buffers.states.window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.WindowFlags.NoScrollWithMouse) + imgui.Begin(u8"fastanim v1.1", imgui_buffers.states.window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.WindowFlags.NoScrollWithMouse) -- Селектор меню imgui.SetCursorPosX(32) @@ -496,95 +549,125 @@ imgui.OnFrame(function() return imgui_buffers.states.window_state[0] end, functi if imgui_buffers.states.menu_state[0] == 2 then -- movement - imgui.SetCursorPos(imgui.ImVec2(55, 90)) + imgui.SetCursorPos(imgui.ImVec2(55, 65)) addons.ToggleButton(u8"Анимации передвижения персонажа", imgui_buffers.movement.active) customizedHint("Изменяет скорость падения, бега, ходьбы, приземления, плавания, карабкания и прочего, что связано с персонажем без оружия. Не влияет на анимации, когда персонаж держит оружие - за это отвечают пункт передвижения с оружием", true) - imgui.SetCursorPos(imgui.ImVec2(55, 120)) + imgui.SetCursorPos(imgui.ImVec2(55, 95)) imgui.PushItemWidth(340) imgui.SliderFloat(u8"##Скорость передвижения", imgui_buffers.movement.speed, 1, 4) imgui.PopItemWidth() -- parachute - imgui.SetCursorPos(imgui.ImVec2(55, 170)) + imgui.SetCursorPos(imgui.ImVec2(55, 140)) addons.ToggleButton(u8"Любое взаимодействие с парашютом", imgui_buffers.parachute.active) customizedHint("Изменяет любое взаимодействие с парашютом, например: падение с парашютом, падение с нераскрытым парашютом, приземление, открытие", true) - imgui.SetCursorPos(imgui.ImVec2(55, 200)) + imgui.SetCursorPos(imgui.ImVec2(55, 170)) imgui.PushItemWidth(340) imgui.SliderFloat(u8"##Скорость парашюта", imgui_buffers.parachute.speed, 1, 4) imgui.PopItemWidth() -- car - imgui.SetCursorPos(imgui.ImVec2(55, 250)) + imgui.SetCursorPos(imgui.ImVec2(55, 215)) addons.ToggleButton(u8"Любое взаимодействие с автомобилем", imgui_buffers.car.active) customizedHint("Ускоряет любое взаимодействие с автомобилем, будь то сел, будь то вышел, будь то выпрыгнул из него", true) - imgui.SetCursorPos(imgui.ImVec2(55, 280)) + imgui.SetCursorPos(imgui.ImVec2(55, 245)) imgui.PushItemWidth(340) imgui.SliderFloat(u8"##Скорость автомобиля", imgui_buffers.car.speed, 1, 4) imgui.PopItemWidth() -- fight - imgui.SetCursorPos(imgui.ImVec2(55, 330)) + imgui.SetCursorPos(imgui.ImVec2(55, 290)) addons.ToggleButton(u8"Скорость анимации ближнего боя", imgui_buffers.fight.active) customizedHint("Ускоряет все анимации ближнего боя: удары, блоки, ПЕРЕДВИЖЕНИЕ ПРИ ИСПОЛЬЗОВАНИИ АНИМАЦИЙ БОЯ", true) - imgui.SetCursorPos(imgui.ImVec2(55, 360)) + imgui.SetCursorPos(imgui.ImVec2(55, 320)) imgui.PushItemWidth(340) imgui.SliderFloat(u8"##Скорость боя", imgui_buffers.fight.speed, 1, 4) imgui.PopItemWidth() - -- gun - imgui.SetCursorPos(imgui.ImVec2(55, 410)) - addons.ToggleButton(u8"Передвижение с оружием в руках", imgui_buffers.gun.active) - customizedHint("Изменяет скорость передвижения с оружием, например: влево-вправо-вперед-назад при прицеливании, перекаты с оружием", true) + -- stun + imgui.SetCursorPos(imgui.ImVec2(55, 365)) + addons.ToggleButton(u8"Анимация станов от оружия", imgui_buffers.stun.active) + customizedHint("Ускоряет анимации станов, относительно беспалевные настройки - 1.25, дальше уже могут админы по попе надавать", true) - imgui.SetCursorPos(imgui.ImVec2(55, 440)) + imgui.SetCursorPos(imgui.ImVec2(55, 395)) imgui.PushItemWidth(340) - imgui.SliderFloat(u8"##Оружие", imgui_buffers.gun.speed, 1, 4) + imgui.SliderFloat(u8"##Скорость оглушения", imgui_buffers.stun.speed, 1, 4) imgui.PopItemWidth() + -- swim + imgui.SetCursorPos(imgui.ImVec2(55, 440)) + addons.ToggleButton(u8"Ускорение анимации плавания", imgui_buffers.swim.active) + customizedHint("Ускоряет анимации плавания персонажа, вроде и так понятно. 2.5 - эффект быстрого плавания при /fpslimit 13", true) + + imgui.SetCursorPos(imgui.ImVec2(55, 470)) + imgui.PushItemWidth(340) + imgui.SliderFloat(u8"##Скорость плавания", imgui_buffers.swim.speed, 1, 4) + imgui.PopItemWidth() + end if imgui_buffers.states.menu_state[0] == 3 then - -- deagle - imgui.SetCursorPos(imgui.ImVec2(55, 90)) - addons.ToggleButton(u8"Desert Eagle", imgui_buffers.deagle.active) - customizedHint("Ускоряет прицеливание с дигла, скорость стрельбы и прочие анимации с ним. По факту обыкновенный Fastdeagle", true) + -- gun movement + imgui.SetCursorPos(imgui.ImVec2(55, 65)) + addons.ToggleButton(u8"Передвижение с оружием в руках", imgui_buffers.gun.active) + customizedHint("Изменяет скорость передвижения с оружием, например: влево-вправо-вперед-назад при прицеливании, перекаты с оружием", true) - imgui.SetCursorPos(imgui.ImVec2(55, 120)) + imgui.SetCursorPos(imgui.ImVec2(55, 95)) + imgui.PushItemWidth(340) + imgui.SliderFloat(u8"##Оружие", imgui_buffers.gun.speed, 1, 4) + imgui.PopItemWidth() + + -- deagle + imgui.SetCursorPos(imgui.ImVec2(55, 140)) + addons.ToggleButton(u8"Desert Eagle", imgui_buffers.deagle.active) + customizedHint("Ускоряет прицеливание с дигла, скорость стрельбы и прочие анимации с ним. По факту обыкновенный fastdeagle", true) + + imgui.SetCursorPos(imgui.ImVec2(55, 170)) imgui.PushItemWidth(340) imgui.SliderFloat(u8"##Дигл", imgui_buffers.deagle.speed, 1, 4) imgui.PopItemWidth() - -- rifle - imgui.SetCursorPos(imgui.ImVec2(55, 170)) - addons.ToggleButton(u8"Винтовки (M4, AK-47, Rifle*)", imgui_buffers.m4.active) - customizedHint("Ускоряет стрельбу, прицеливание и прочие анимки для винтовок (отделить невозможно). Для Rifle ускорение стрельбы не работает, только прицеливание", true) + -- m4 + imgui.SetCursorPos(imgui.ImVec2(55, 215)) + addons.ToggleButton(u8"M4", imgui_buffers.m4.active) + customizedHint("Ускоряет стрельбу, прицеливание и прочие анимки для М4", true) - imgui.SetCursorPos(imgui.ImVec2(55, 200)) + imgui.SetCursorPos(imgui.ImVec2(55, 245)) imgui.PushItemWidth(340) - imgui.SliderFloat(u8"##Винтовки", imgui_buffers.m4.speed, 1, 4) + imgui.SliderFloat(u8"##M4", imgui_buffers.m4.speed, 1, 4) + imgui.PopItemWidth() + + -- rifle + imgui.SetCursorPos(imgui.ImVec2(55, 290)) + addons.ToggleButton(u8"Rifle", imgui_buffers.rifle.active) + customizedHint("Для Rifle ускорение стрельбы не работает, ускоряется только прицеливание и скорость выстрела", true) + + imgui.SetCursorPos(imgui.ImVec2(55, 320)) + imgui.PushItemWidth(340) + imgui.SliderFloat(u8"##Rifle", imgui_buffers.rifle.speed, 1, 4) imgui.PopItemWidth() -- shotgun - imgui.SetCursorPos(imgui.ImVec2(55, 250)) + imgui.SetCursorPos(imgui.ImVec2(55, 365)) addons.ToggleButton(u8"Shotgun", imgui_buffers.shotgun.active) - customizedHint("Аналогично прошлым, ускоряет стрельбу, прицеливание, перезарядку (анимку, факт. время идентичное). Скорость стрельбы зависима от перезарядки.", true) + customizedHint("Ничего особо и не сказать, ускоряет все, кроме времени перезарядки (но анимка перезарядки ускоряется)", true) - imgui.SetCursorPos(imgui.ImVec2(55, 280)) + imgui.SetCursorPos(imgui.ImVec2(55, 395)) imgui.PushItemWidth(340) imgui.SliderFloat(u8"##Шотган", imgui_buffers.shotgun.speed, 1, 4) imgui.PopItemWidth() -- mp5 - imgui.SetCursorPos(imgui.ImVec2(55, 330)) + imgui.SetCursorPos(imgui.ImVec2(55, 440)) addons.ToggleButton(u8"MP5", imgui_buffers.mp5.active) - customizedHint("Ускоряет анимацию стрельбы и прицеливания.", true) + customizedHint("Ускоряет анимацию стрельбы и прицеливания с MP5", true) - imgui.SetCursorPos(imgui.ImVec2(55, 360)) + imgui.SetCursorPos(imgui.ImVec2(55, 470)) imgui.PushItemWidth(340) imgui.SliderFloat(u8"##МП5", imgui_buffers.mp5.speed, 1, 4) imgui.PopItemWidth() @@ -609,10 +692,16 @@ function main() while true do wait(0) if imgui_buffers.states.active[0] then + local weapon = getCurrentCharWeapon(PLAYER_PED) for key, buffer in pairs(imgui_buffers) do if key ~= "states" and buffer.active[0] then - for _, anim in ipairs(anims[key]) do - setCharAnimSpeed(PLAYER_PED, anim, buffer.speed[0]) + local anim_list = anims[key] + if anim_list then + for _, anim in ipairs(anim_list) do + if key ~= "m4" and key ~= "rifle" or (key == "m4" and weapon == 31) or (key == "rifle" and weapon == 33) then + setCharAnimSpeed(PLAYER_PED, anim, buffer.speed[0]) + end + end end end end