Lua Полуавтоматическая коробка передач

Статус
В этой теме нельзя размещать новые ответы.

IZDATXXX

Известный
Автор темы
Проверенный
172
252
Описание: Трансмиссия содержит 6 передних и 6 задних передач. Автоматически подстраивается под движение вперед/назад с помощью клавиш W и S.
Требования: Moonloader, cleo, sampfuncs.
Активация: Клавиша INSERT сидя в транспорте, она же для деактивации.
Управление: Колёсико мыши вверх/вниз для разных типов передач по разному. Правая кнопка мыши для смены передачи/Gearlock.
Автор: Izd4T
Исходный код:
Lua:
script_name("Transmission")
script_author("IZD4T")
require "lib.moonloader"
function main()
    repeat
        wait(0)
    until isSampAvailable()
    CarControlBlock = 0xB73458
    GearControlMemory = CarControlBlock+0x20
    DragControlMemory = CarControlBlock+0x22
    GearStep = 51
    pGear = 0
    nGear = 0
    GearState = 0
    ScriptStatus = 0
    while true do
        wait(0)
        if wasKeyPressed(VK_INSERT) then
            if ScriptStatus==0 then
                ScriptStatus=1
                GeneralFont = renderCreateFont("Arial", 16, 0, "utf-8")
            else
                ScriptStatus=0
                renderReleaseFont(GeneralFont)
            end
        else
        end
        if ScriptStatus==1 then
            local ScreenWidth, ScreenHeight = getScreenResolution()
            if isPlayerPlaying(playerPed) then
                if isCharInAnyCar(playerPed) then
                    if wasKeyPressed(VK_RBUTTON) then
                        if GearState==-1 then
                            GearState=0
                        elseif GearState==0 then
                            GearState=1
                        elseif GearState==1 then
                            GearState=-1
                        end
                    end
                    if GearState==-1 then    --positive
                        local mWheelDelta = getMousewheelDelta()
                        if mWheelDelta>0 then    --up
                            if pGear<255 then
                                pGear=pGear+GearStep
                            end
                        elseif mWheelDelta<0 then    --down
                            if pGear>0 then
                                pGear=pGear-GearStep
                            end
                        end
                        renderFontDrawText(GeneralFont, "Gearlock", 16, ScreenHeight/2, 0xFFECF0F1, false)
                        renderFontDrawText(GeneralFont, "Forward: "..pGear/51, 16, ScreenHeight/2+16, 0xFF3498DB, false)
                        renderFontDrawText(GeneralFont, "Reverse: "..nGear/51, 16, ScreenHeight/2+32, 0xFFECF0F1, false)
                    elseif GearState==1 then    --negative
                        local mWheelDelta = getMousewheelDelta()
                        if mWheelDelta>0 then    --up
                            if nGear<0 then
                                nGear=nGear+GearStep
                            end
                        elseif mWheelDelta<0 then    --down
                            if nGear>-255 then
                                nGear=nGear-GearStep
                            end
                        end
                        renderFontDrawText(GeneralFont, "Gearlock", 16, ScreenHeight/2, 0xFFECF0F1, false)
                        renderFontDrawText(GeneralFont, "Forward: "..pGear/51, 16, ScreenHeight/2+16, 0xFFECF0F1, false)
                        renderFontDrawText(GeneralFont, "Reverse: "..nGear/51, 16, ScreenHeight/2+32, 0xFF3498DB, false)
                    elseif GearState==0 then
                        renderFontDrawText(GeneralFont, "Gearlock", 16, ScreenHeight/2, 0xFF3498DB, false)
                        renderFontDrawText(GeneralFont, "Forward: "..pGear/51, 16, ScreenHeight/2+16, 0xFFECF0F1, false)
                        renderFontDrawText(GeneralFont, "Reverse: "..nGear/51, 16, ScreenHeight/2+32, 0xFFECF0F1, false)
                    end
                    if isKeyDown(0x57) then
                            writeMemory(GearControlMemory, 2, pGear, 1)
                    end
                    if isKeyDown(0x53) then
                            writeMemory(GearControlMemory, 2, nGear, 1)
                    end
                else
                end
            else
            end
        end
    end
end
 

Вложения

  • transmission.lua
    2.7 KB · Просмотры: 298

IZDATXXX

Известный
Автор темы
Проверенный
172
252
Рекомендация: чтобы задние передачи корректно работали отключите клавишу S в настройках управления транспортом.
 
  • Нравится
Реакции: deleted-user-164854

brodsky

Потрачен
213
261
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
один вопрос.
нахрена?
 
  • Нравится
Реакции: PALAMAL

Immunity

Активный
210
44
Что-то с задним ходом не то, не меняется скорость.
Желательно бы на первой передаче сделать еще меньше скорость) до 20
 

IZDATXXX

Известный
Автор темы
Проверенный
172
252
Что-то с задним ходом не то, не меняется скорость.
Желательно бы на первой передаче сделать еще меньше скорость) до 20
Рекомендация: чтобы задние передачи корректно работали отключите клавишу S в настройках управления транспортом.
Читать комментарии умеешь ?
 
  • Нравится
Реакции: Immunity
Статус
В этой теме нельзя размещать новые ответы.