Página 1 de 3

[SA] Velocímetro ultra minimalista

Enviado: 31 Mai 2019, 23:56
por HybridTheory
Atualizado 5/6/2019 19:32
  • Corrigido um crash na missão Drive-Thru
Atualizado 3/6/2019 2:10
  • Corrigido o velocímetro sendo mostrado mesmo com o HUD desativado
  • Agora a imagem de fundo é desativada ao desativar o velocímetro
Atualizado 2/6/2019 2:10
  • Adicionado opção para ver a unidade de medida (KPH/MPH) no velocímetro
  • Adicionado opção para colocar uma imagem de fundo (personalizada) para o velocímetro
  • Adicionado opção para usar o cálculo de velocidade do VehFuncs (baseado na rotação das rodas do veículo, portanto, só funciona em veículos terrestes)
Atualizado 1/6/2019 14:53
  • Corrigido o velocímetro piscando ao cair na água
Atualizado 1/6/2019 13:36
  • Adicionado opção para mostrar as marchas do veículo na tela



Um velocímetro com apenas o essencial: um número na tela mostrando a velocidade (real) do veículo. Bom para quem procura algo bem simples e não curte aqueles velocímetros feios e exagerados.

Imagem

Ele também é personalizável, podendo escolher:
  • Unidade de medida (quilômetros por hora ou milhas por hora)
  • Estilo da fonte
  • Cor da fonte
  • Transparência da fonte
  • Tamanho da borda
  • Cor da borda
  • Transparência da borda
  • Posição do velocímetro na tela
  • Altura e largura do velocímetro
  • Comando para ativar/desativar o velocímetro
  • Mostrar a marcha do veículo na tela (vem desativado por padrão)
  • Posição da marcha na tela
  • Comando para ativar/desativar a marcha
  • Mostrar a unidade de medida (KMH/MPH) no velocímetro
  • Colocar uma imagem de fundo (personalizada) no velocímetro
  • Usar um cálculo de velocidade alternativo, baseado na rotação das rodas do veículo (só funciona em veículos terrestes) (necessário VehFuncs)

Você pode recarregar o .ini dentro do jogo digitando RLDINI.

SourceAbrir

Código: Selecionar tudo

SCRIPT_START
{

    LVAR_INT scplayer car CVehicle cG cB cAlpha eR eG eB eAlpha Key1 Key2 Key3 Key4 iGear pVehFuncs pGetVehicleSpeedRealistic Temp pThreadMemory sShow iHudMode
    LVAR_FLOAT fSpeed fYPos fXPos fYScale fXScale fYGPos fXGPos backgroundPosX backgroundPosY backgroundSizeX backgroundSizeY

    LOAD_TEXTURE_DICTIONARY VLCMTR

    LOAD_SPRITE 1 BGRND

    ADD_TEXT_LABEL _SPD_ "~1~"
    ADD_TEXT_LABEL _SKH_ "~1~KPH"
    ADD_TEXT_LABEL _SMH_ "~1~MPH"
    ADD_TEXT_LABEL _GR_ "~1~"
    ADD_TEXT_LABEL _GR2_ "R"

    GET_PLAYER_CHAR 0 (scplayer)

    sShow = TRUE

    GOSUB readIni

    WHILE TRUE
        WAIT 0
        IF IS_CHAR_SITTING_IN_ANY_CAR (scplayer)
            STORE_CAR_CHAR_IS_IN_NO_SAVE scplayer (car)
            IF NOT IS_CAR_DEAD car
                READ_MEMORY 0xBA6769 1 0 (iHudMode)
                IF iHudMode = 1
                    WHILE IS_CHAR_IN_CAR scplayer car
                        WAIT 0
                        IF DOES_VEHICLE_EXIST car
                            IF TEST_CHEAT "RLDINI"
                                GOSUB readIni
                                PRINT_FORMATTED_NOW "~y~.ini recarregado." 1000
                            ENDIF
                            GOSUB KeyPressCheck
                            GOSUB Draw
                            READ_MEMORY 0xBA6769 1 0 (iHudMode)
                            IF iHudMode = 0
                            OR IS_CAR_DEAD car
                            OR IS_CHAR_DEAD scplayer
                                BREAK
                            ENDIF
                        ENDIF
                    ENDWHILE
                ENDIF
            ENDIF
        ENDIF
    ENDWHILE

    KeyPressCheck:
    IF IS_KEY_PRESSED Key1
    AND IS_KEY_PRESSED Key2
        GOSUB ToggleSpeedometer
    ENDIF
    IF IS_KEY_PRESSED Key3
    AND IS_KEY_PRESSED Key4
        GOSUB ToggleGear
    ENDIF

    RETURN

    ToggleSpeedometer:
    IF sShow = TRUE
        sShow = FALSE
        PRINT_FORMATTED_NOW "~Y~Velocimetro desativado." 1000
    ELSE
        sShow = TRUE
    ENDIF
    WHILE IS_KEY_PRESSED Key1
    AND IS_KEY_PRESSED Key2
        GOSUB Draw
        WAIT 0
    ENDWHILE

    RETURN

    ToggleGear:
    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 28
    READ_MEMORY pThreadMemory 4 FALSE (Temp)
    IF Temp = TRUE // GShow
        Temp = FALSE
        GET_LABEL_POINTER Memory (pThreadMemory)
        pThreadMemory += 28
        WRITE_MEMORY pThreadMemory 4 (Temp) FALSE
        PRINT_FORMATTED_NOW "~Y~Marcha desativada." 1000
    ELSE
        Temp = TRUE
        GET_LABEL_POINTER Memory (pThreadMemory)
        pThreadMemory += 28
        WRITE_MEMORY pThreadMemory 4 (Temp) FALSE
    ENDIF
    WHILE IS_KEY_PRESSED Key3
    AND IS_KEY_PRESSED Key4
        GOSUB Draw
        WAIT 0
    ENDWHILE

    RETURN

    Draw:
    USE_TEXT_COMMANDS 1
    GOSUB SpeedCalc
    GET_CAR_CURRENT_GEAR car (iGear)
    IF sShow = TRUE
        GOSUB formatText
        GET_LABEL_POINTER Memory (pThreadMemory)
        READ_MEMORY pThreadMemory 4 FALSE (Temp)
        IF Temp = 0 //Enable MPH
            GET_LABEL_POINTER Memory (pThreadMemory)
            pThreadMemory += 24
            READ_MEMORY pThreadMemory 4 FALSE (Temp)
            IF Temp = TRUE // ShowUnit
                DISPLAY_TEXT_WITH_FLOAT fXPos fYPos _SKH_ fSpeed 3
            ELSE
                DISPLAY_TEXT_WITH_FLOAT fXPos fYPos _SPD_ fSpeed 3
            ENDIF
        ELSE
            GET_LABEL_POINTER Memory (pThreadMemory)
            pThreadMemory += 24
            READ_MEMORY pThreadMemory 4 FALSE (Temp)
            IF Temp = TRUE
                DISPLAY_TEXT_WITH_FLOAT fXPos fYPos _SMH_ fSpeed 3
            ELSE
                DISPLAY_TEXT_WITH_FLOAT fXPos fYPos _SPD_ fSpeed 3
            ENDIF
        ENDIF
    ENDIF

    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 28
    READ_MEMORY pThreadMemory 4 FALSE (Temp)
    IF Temp = 1 //GearShow
        GET_VEHICLE_POINTER car CVehicle
        CVehicle += 0x594 // mSubClass
        READ_MEMORY CVehicle 4 FALSE CVehicle
        IF CVehicle = 0
        OR CVehicle = 1
        OR CVehicle = 2
        OR CVehicle = 9
            IF iGear = 0
                GOSUB formatText
                DISPLAY_TEXT fXGPos fYGPos _GR2_
            ELSE
                GOSUB formatText
                DISPLAY_TEXT_WITH_NUMBER fXGPos fYGPos _GR_ iGear
            ENDIF
        ENDIF
    ENDIF

    IF sShow = TRUE
        GET_LABEL_POINTER Memory (pThreadMemory)
        pThreadMemory += 16
        READ_MEMORY pThreadMemory 4 FALSE (Temp)
        IF Temp = TRUE //Background
            DRAW_SPRITE 1 backgroundPosX backgroundPosY (backgroundSizeX backgroundSizeY) (255 255 255 255)
        ENDIF
    ENDIF

    USE_TEXT_COMMANDS 0

    RETURN

    SpeedCalc:
    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 12
    READ_MEMORY pThreadMemory 4 FALSE (Temp)
    IF Temp = 1 //VehFuncsCalc
        GET_VEHICLE_POINTER car CVehicle
        CVehicle += 0x594 // mSubClass
        READ_MEMORY CVehicle 4 FALSE CVehicle
        IF NOT CVehicle = 3
        AND NOT CVehicle = 4
        AND NOT CVehicle = 5
        AND NOT CVehicle = 7
        AND NOT CVehicle = 8
            IF LOAD_DYNAMIC_LIBRARY "VehFuncs.asi" pVehFuncs
                GET_DYNAMIC_LIBRARY_PROCEDURE "Ext_GetVehicleSpeedRealistic" pVehFuncs (pGetVehicleSpeedRealistic)
                FREE_DYNAMIC_LIBRARY pVehFuncs
            ENDIF

            IF pGetVehicleSpeedRealistic > 0
                GET_VEHICLE_POINTER car (CVehicle)
                CALL_FUNCTION_RETURN pGetVehicleSpeedRealistic 1 1 CVehicle (fSpeed)
                GET_LABEL_POINTER Memory (pThreadMemory)
                READ_MEMORY pThreadMemory 4 FALSE (Temp)
                IF Temp = 1 //Enable MPH
                    fSpeed /= 1.609344 // mph
                ENDIF
                RETURN
            ENDIF
        ENDIF
    ENDIF
    GET_CAR_SPEED car (fSpeed) // m/s
    fSpeed *= 3.6 // km/h
    GET_LABEL_POINTER Memory (pThreadMemory)
    READ_MEMORY pThreadMemory 4 FALSE (Temp)
    IF Temp = 1 //Enable MPH
        fSpeed /= 1.609344 // mph
    ENDIF
    RETURN

    readIni:
    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "EnableMPH" Temp
        Temp = 0
    ENDIF
    GET_LABEL_POINTER Memory (pThreadMemory)
    WRITE_MEMORY pThreadMemory 4 (Temp) FALSE

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Fonte" Temp
        Temp = 2
    ENDIF
    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 4
    WRITE_MEMORY pThreadMemory 4 (Temp) FALSE

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Fonte_RED" Temp //cR
        Temp = 210
    ENDIF
    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 8
    WRITE_MEMORY pThreadMemory 4 (Temp) FALSE

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Fonte_GREEN" cG
        cG = 210
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Fonte_BLUE" cB
        cB = 210
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Fonte_ALPHA" cAlpha
        cAlpha = 255
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Bordas_Tamanho" Temp
        Temp = 1
    ENDIF
    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 20
    WRITE_MEMORY pThreadMemory 4 (Temp) FALSE

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Bordas_RED" eR
        eR = 0
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Bordas_GREEN" eG
        eG = 0
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Bordas_BLUE" eB
        eB = 0
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Bordas_ALPHA" eAlpha
        eAlpha = 255
    ENDIF

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Pos_X" fXPos
        fXPos = 540.0
    ENDIF

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Pos_Y" fYPos
        fYPos = 380.0
    ENDIF

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Altura" fXScale
        fXScale = 0.4
    ENDIF

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Largura" fYScale
        fYScale = 1.8
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Key1" Key1
        Key1 = 75
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Key2" Key2
        Key2 = 76
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Marcha" Temp
        Temp = 0
    ENDIF
    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 28
    WRITE_MEMORY pThreadMemory 4 (Temp) FALSE

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "M_Pos_X" fXGPos
        fXGPos = 585.0
    ENDIF

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "M_Pos_Y" fYGPos
        fYGPos = 380.0
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Key3" Key3
        Key3 = 75
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Key4" Key4
        Key4 = 79
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "VehFuncsCalc" Temp
        Temp = 0
    ENDIF
    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 12
    WRITE_MEMORY pThreadMemory 4 (Temp) FALSE

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "Background" Temp
        Temp = 0
    ENDIF
    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 16
    WRITE_MEMORY pThreadMemory 4 (Temp) FALSE

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "backgroundPosX" backgroundPosX
        backgroundPosX = 540.0
    ENDIF

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "backgroundPosY" backgroundPosY
        backgroundPosY = 390.0
    ENDIF

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "backgroundSizeX" backgroundSizeX
        backgroundSizeX = 260.0
    ENDIF

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "backgroundSizeY" backgroundSizeY
        backgroundSizeY = 52.0
    ENDIF

    IF NOT READ_INT_FROM_INI_FILE "cleo\Minimalistic Speedometer.ini" "cfg" "ShowUnit" Temp
        Temp = 0
    ENDIF
    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 24
    WRITE_MEMORY pThreadMemory 4 (Temp) FALSE

    RETURN





    formatText:
    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 4
    READ_MEMORY pThreadMemory 4 FALSE (Temp)
    SET_TEXT_FONT Temp // Font

    SET_TEXT_SCALE fXScale fYScale

    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 8
    READ_MEMORY pThreadMemory 4 FALSE (Temp)
    SET_TEXT_COLOUR Temp cG cB cAlpha

    GET_LABEL_POINTER Memory (pThreadMemory)
    pThreadMemory += 20
    READ_MEMORY pThreadMemory 4 FALSE (Temp)
    SET_TEXT_EDGE Temp eR eG eB eAlpha

    RETURN
 
}
SCRIPT_END

Memory:
DUMP
00 00 00 00 // EnableMPH
00 00 00 00 // Font 4
00 00 00 00 // cR 8
00 00 00 00 // VehFuncsCalc 12
00 00 00 00 // Background 16
00 00 00 00 // EdgeThickness 20
00 00 00 00 // ShowUnit 24
00 00 00 00 // GShow 28
ENDDUMP

DOWNLOAD

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 09:30
por Mikael
Poderia adicionar:
* Uma opção de ver o número da marcha e colocar a opção no ini de ocultar ou mostrar.
* Uma mensagem quando desativasse o velocímetro.
Bug:
* Não consigo mudar as keys que ativam e desativam o mod.

 

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 10:00
por Mikael
HHMMm
SpoilerAbrir
 Imagem

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 10:44
por Mikael
Configurei o ini e coloquei explicações
Tá com o selo de qualidade da mixmods  :daora:
 

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 13:50
por HybridTheory
Mikael escreveu:
01 Jun 2019, 09:30
* Uma opção de ver o número da marcha e colocar a opção no ini de ocultar ou mostrar.
* Uma mensagem quando desativasse o velocímetro.

atualizei

Mikael escreveu:
01 Jun 2019, 09:30
* Não consigo mudar as keys que ativam e desativam o mod.

vê melhor, aqui tá funcionando perfeitamente

Mikael escreveu:
01 Jun 2019, 10:00
HHMMm
SpoilerAbrir
Imagem
põe um widescreen fix ai porra

o cálculo da velocidade foi feito convertendo a unidade de medida do GTA (metros por segundo) para quilômetros por hora

Imagem

Imagem

é o mesmo cálculo usado pelo SpeedoSA
errado não tá :peepo8:

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 14:05
por Mikael
HybridTheory escreveu:
01 Jun 2019, 13:50
põe um widescreen fix

Ja tá com windescreen
É que eu uso 4:3

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 14:24
por Mikael
Quando cai na água ele fica piscando

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 14:44
por HybridTheory
Mikael escreveu:
01 Jun 2019, 14:24
Quando cai na água ele fica piscando
arrumei, valeu por avisar

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 15:36
por Mikael
Poderia ter o nome km ou mph pra não precisar ir lá no ini ver ou só por estética mesmo,ficava legal

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 16:17
por Mystertv
Mikael escreveu:
01 Jun 2019, 10:00
HHMMm
SpoilerAbrir
Imagem
Esse mod é limitado a 210 pra qualquer carro.

Tbm acho que seria bom poder ver o KMH\MPH

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 18:10
por Kr0n0s800
Gracias queria un velocimetro simple hace tiempo, puedes agragar una opcion en el .ini para calcular la velocidad con VehFuncs?

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 18:26
por Junior_Djjr
Bote opção para carregar uma imagem de um .txd, assim dá para colocar aquele fundo como do GTA V.

Re: [SA] Velocímetro ultra minimalista

Enviado: 01 Jun 2019, 20:23
por Mikael
Junior_Djjr escreveu:
01 Jun 2019, 18:26
Bote opção para carregar uma imagem de um .txd, assim dá para colocar aquele fundo como do GTA V.

Wow ficava top

Re: [SA] Velocímetro ultra minimalista

Enviado: 02 Jun 2019, 01:59
por HybridTheory
Kr0n0s800 escreveu:
01 Jun 2019, 18:10
Gracias queria un velocimetro simple hace tiempo, puedes agragar una opcion en el .ini para calcular la velocidad con VehFuncs?
Junior_Djjr escreveu:
01 Jun 2019, 18:26
Bote opção para carregar uma imagem de um .txd, assim dá para colocar aquele fundo como do GTA V.

atualizei

Re: [SA] Velocímetro ultra minimalista

Enviado: 02 Jun 2019, 04:08
por Kr0n0s800
HybridTheory escreveu:
31 Mai 2019, 23:56
Atualizado 2/6/2019 2:10
  • Adicionado opção para ver a unidade de medida (KPH/MPH) no velocímetro
  • Adicionado opção para colocar uma imagem de fundo (personalizada) para o velocímetro
  • Adicionado opção para usar o cálculo de velocidade do VehFuncs (baseado na rotação das rodas do veículo, portanto, só funciona em veículos terrestes)
Ele também é personalizável, podendo escolher:
  • Mostrar a unidade de medida (KMH/MPH) no velocímetro
  • Colocar uma imagem de fundo (personalizada) no velocímetro
  • Usar um cálculo de velocidade alternativo, baseado na rotação das rodas do veículo (só funciona em veículos terrestes) (necessário VehFuncs)
 
las nuevas configuraciones no se aplican