Дрон

w99zzl1

Участник
Автор темы
108
10
Версия MoonLoader
.026-beta
Помогите пожалуйста исправить проблему. Переделал камхак от "sanek a.k.a Maks_Fender, edited by ANIKI" под активацию на команду - все работает, вот только даже когда я не использую дрон (камхак), если нажимаю + или - на экране выводится скорость, которая меняется в зависимости от нажатия. Так же проблема с нажатием клавиши Enter. Я сделал выход из камхака на Enter - это работает, но когда я не использую дрон, при нажатии на Enter камера зацикливается на центре и двигать камерой (мышью) не получается, оно мгновенно возвращается в центр. Могу предоставить видео. Помогите пожалуйста решить проблему!

Код:

Lua:
function main()
    while not isSampAvailable() do wait(0) end

    sampAddChatMessage("[Samsonov Helper]: {FFFFFF}Samsonov Helper запущен успешно! Версия: {007FB4}1.0 {FFFFFF}Разработчик - {009ADB}[Blue] Arseniy_Samsonov", 0x007FB4)
    sampAddChatMessage("[Samsonov Helper]: {FFFFFF}Меню скрипта: {007FB4}/samsa", 0x007FB4)

    -- Регистрация остальных команд
    sampRegisterChatCommand('test', function()
        window[0] = not window[0]
    end)

    sampRegisterChatCommand('1p', function()
        lua_thread.create(function()
            autoAnswer()
        end)
    end)

    sampRegisterChatCommand('1uninvite', function(args)
        lua_thread.create(function()
            cmd_uninvite(args)
        end)
    end)

    sampRegisterChatCommand('1invite', function(args)
        lua_thread.create(function()
            cmd_invite(args)
        end)
    end)

    sampRegisterChatCommand('1changeskin', function(args)
        lua_thread.create(function()
            cmd_changeskin(args)
        end)
    end)

    -- Регистрация команды для дрона
    sampRegisterChatCommand('drone', function()
        lua_thread.create(function()
            OnDrone()
        end)
    end)

    drone = 0 
    speed = 1.0
    angZ, angY, posX, posY, posZ = 0.0, 0.0, 0.0, 0.0, 0.0

    -- Главный цикл
    while true do
        wait(0)

        if drone == 1 then
            CameraAndDrone()
            DroneSpeed()
        end

        if isKeyDown(VK_RETURN) then
            if drone == 1 then
                OffDrone()
            end
        end
    end
end

function OnDrone()
    if drone == 0 then
        displayRadar(false)
        displayHud(false)
        posX, posY, posZ = getCharCoordinates(playerPed)
        angZ = getCharHeading(playerPed) * -1.0
        angY = 0.0
        setFixedCameraPosition(posX, posY, posZ, 0.0, 0.0, 0.0)
        lockPlayerControl(true)
        drone= 1
        sampAddChatMessage("[Drone]: {FFFFFF}Режим дрона активирован.", 0xFFFF00)
    else
        OffDrone()
    end
end

function CameraAndDrone()
    if drone == 1 then
        Camera()
        moveDrone()
        CameraAtDrone()
    end
end

function Camera()
    local offMouX, offMouY = getPcMouseMovement()
    angZ = (angZ + offMouX / 4.0) % 360.0
    angY = math.min(89.0, math.max(-89.0, angY + offMouY / 4.0))
end

function moveDrone()
    if drone == 1 then
        local radZ = math.rad(angZ)
        local radY = math.rad(angY)

        local forwardX = math.sin(radZ) * math.cos(radY)
        local forwardY = math.cos(radZ) * math.cos(radY)
        local forwardZ = math.sin(radY)

        local rightX = math.sin(radZ + math.pi / 2)
        local rightY = math.cos(radZ + math.pi / 2)

        if isKeyDown(VK_W) then
            posX = posX + forwardX * speed
            posY = posY + forwardY * speed
            posZ = posZ + forwardZ * speed
        end
        if isKeyDown(VK_S) then
            posX = posX - forwardX * speed
            posY = posY - forwardY * speed
            posZ = posZ - forwardZ * speed
        end
        if isKeyDown(VK_A) then
            posX = posX - rightX * speed
            posY = posY - rightY * speed
        end
        if isKeyDown(VK_D) then
            posX = posX + rightX * speed
            posY = posY + rightY * speed
        end
        if isKeyDown(VK_SPACE) then
            posZ = posZ + speed
        end
        if isKeyDown(VK_SHIFT) then
            posZ = posZ - speed
        end
    end
end

function CameraAtDrone()
    if drone == 1 then
        local radZ = math.rad(angZ)
        local radY = math.rad(angY)

        local camX = posX + math.sin(radZ) * math.cos(radY)
        local camY = posY + math.cos(radZ) * math.cos(radY)
        local camZ = posZ + math.sin(radY)

        setFixedCameraPosition(posX, posY, posZ, 0.0, 0.0, 0.0)
        pointCameraAtPoint(camX, camY, camZ, 2)
    end
end

function DroneSpeed()
    if drone == 1 then
        if isKeyDown(187) then
            speed = speed + 0.01
            printStringNow(string.format("Speed: %.2f", speed), 1000)
        end

        if isKeyDown(189) then
            speed = speed - 0.01
            if speed < 0.01 then speed = 0.01 end
            printStringNow(string.format("Speed: %.2f", speed), 1000)
        end
    end
end

function OffDrone()
    displayRadar(true)
    displayHud(true)
    lockPlayerControl(false)
    restoreCameraJumpcut()
    setCameraBehindPlayer()
    drone= 0
    sampAddChatMessage("[Drone]: {FFFFFF}Режим дрона отключён.", 0xFFFF00)
end
 

w99zzl1

Участник
Автор темы
108
10
в начало кода
Lua:
require "lib.moonloader"
в 168 строке забыл пробел поставить перед =
Lua:
drone = 0
Ой, это я видимо уже когда сюда код вставлял что то дернул, ибо в коде все нормально

в начало кода
Lua:
require "lib.moonloader"

Это есть, просто не весь код кинул
 
Последнее редактирование: