Помогите с скриптом Fake Speed Car

Groved

Новичок
Автор темы
5
0
Версия MoonLoader
.027.0-preview
Я нашёл скрипт который подменяет реальную скорость авто на фейк (любую которую я поставлю). Проблема в том что у меня всё нормально, но у других я прыгаю из стороны в сторону (Как будто у меня рванка), Я попробовал поменять значение - значение speed.x (ширина) поставил на 0, а значение speed.z (длина) на 140.
Теперь меня не влево или в право кидает, а в вперёд или назад. Вообщем всё что мог перепробовал, но ничего не получается. Прошу вашей помощи.

Lua:
require "lib.sampfuncs"
require "lib.moonloader"
local events = require 'lib.samp.events'

local font = renderCreateFont('Century Gothic', 12, 9)

local safeSH = false

local actualSpeed = -1
local speedCap = 210

local _, wheight = getScreenResolution()

function main()
    while not isSampAvailable() do wait(0) end
 
    function events.onSendVehicleSync(data)
        local speed = data.moveSpeed
        actualSpeed = math.sqrt( speed.x ^ 2 + speed.y ^ 2 + speed.z ^ 2 ) * 210
        if (actualSpeed >= speedCap and safeSH) then
            speed.x = speedCap / 210
            speed.y = speedCap / 0
            speed.z = speedCap / 0
        end
    end
 
    lua_thread.create(function ()
        while true do
            if (not isCharInAnyCar(PLAYER_PED)) then
                actualSpeed = -1
            end
            if (actualSpeed >= speedCap and safeSH) then
                renderFontDrawText(font, "Real speed: " .. math.floor(actualSpeed) .. "km/h", 10, wheight/2, 0xFF007FFF)
                renderFontDrawText(font, "Fake speed: " .. math.floor(speedCap) .. "km/h", 10, wheight/2+20, 0xFF007FFF)
            end
            wait(1)
        end
    end)
 
    sampRegisterChatCommand("fbypass", function (cap)
        safeSH = not safeSH
        local msg = "Fly Bypass for Blast.hk " .. (safeSH and "{00CC00}enabled" or "{CC0000}disabled") .. "{007FFF}."
        if safeSH then
            speedCap = 114
            cap = tonumber(cap)
            if cap == nil or cap < 3 then
                msg = msg .. " Speed cap was set to a default of {FFFF00}50{007FFF} km/h."
            else
                speedCap = cap
                msg = msg .. " Speed cap was set to {FFFF00}" .. cap .. "{007FFF} km/h."
            end
        end
        sampAddChatMessage(msg, 0x007FFF)
    end)
end
 
Решение
Например, если у тебя скорость 420км/ч, а в скрипте указано что порог равен 210, нужно делить скорость на 2 по каждой оси
Lua:
if (actualSpeed >= speedCap and safeSH) then
    -- например, speedCap (порог) = 210, actualSpeed (реальная скорость) = 420, тогда m = 0.5
    local m = speedCap / actualSpeed
    -- умножаешь скорость по каждой оси на m
    speed.x = speed.x * m
    speed.y = speed.y * m
    speed.z = speed.z * m
end

astynk

Известный
Проверенный
741
532
Надо пропорционально уменьшать скорость по осям XYZ, но и в этом случае ты будешь двигаться рывками, будто пингуешь
Оно и понятно, когда едешь 500км/ч, а серверу отправляешь 100, со стороны будет выглядеть что-то не так
 
  • Нравится
Реакции: Shovel и Groved

astynk

Известный
Проверенный
741
532
Например, если у тебя скорость 420км/ч, а в скрипте указано что порог равен 210, нужно делить скорость на 2 по каждой оси
Lua:
if (actualSpeed >= speedCap and safeSH) then
    -- например, speedCap (порог) = 210, actualSpeed (реальная скорость) = 420, тогда m = 0.5
    local m = speedCap / actualSpeed
    -- умножаешь скорость по каждой оси на m
    speed.x = speed.x * m
    speed.y = speed.y * m
    speed.z = speed.z * m
end
 
  • Нравится
Реакции: Groved

Groved

Новичок
Автор темы
5
0
Тогда получается по каждым осям по 0.5 ?
Теперь новая проблема, я порог разделил на реальную скорость то есть 85 / 140 вроде правильно сделал, но заметил что при достижении скорости 60 она резко подскакивает до 85, с чем может быть связано?


Lua:
function events.onSendVehicleSync(data)
        local speed = data.moveSpeed
        actualSpeed = math.sqrt( speed.x ^ 2 + speed.y ^ 2 + speed.z ^ 2 ) * 140
        if (actualSpeed >= speedCap and safeSH) then
        local m = speedCap / actualSpeed
            speed.x = 0.60714286
            speed.y = 0.60714286
            speed.z = 0.60714286
Вроде бы получилось, ещё игроки не жаловались.
Lua:
function events.onSendVehicleSync(data)
        local speed = data.moveSpeed
        actualSpeed = math.sqrt( speed.x ^ 2 + speed.y ^ 2 + speed.z ^ 2 ) * 140
        if (actualSpeed >= speedCap and safeSH) then
        local m = speedCap / actualSpeed
            speed.x = speed.x * m
            speed.y = speed.y * m
            speed.z = speed.z * m
 
Последнее редактирование: