Página 1 de 1

Asa Delta (remake)

Enviado: 27 Nov 2018, 10:22
por nadalao
Existe um mod antigo com muito potencial Hang Glider Mod resolvi recriar o script desse mod, e acabou ficando realmente bom!

Chegue perto e aperte F para pegar e carregar por aí a asa delta, agora quando você estiver no ar já vai começar a voar!
 
 Imagem

Atualizado: agora todas as localizações são configuráveis por .ini
LocalizaçõesAbrir
Imagem
SourceAbrir

Código: Selecionar tudo

SCRIPT_START
{
    LVAR_INT scplayer asa
    LVAR_INT l_LR l_UD iDireito
    LVAR_FLOAT x[8] y[8] z[2] angulo altura giro_x giro_y  gravidade frente fTimer fps

    GET_PLAYER_CHAR 0 scplayer

    IF IS_AUSTRALIAN_GAME
        CREATE_OBJECT_NO_OFFSET 18631 x[0] y[0] -100.0 asa
    ENDIF

    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 1" "x" x[1]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 1" "y" y[1]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 2" "x" x[2]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 2" "y" y[2]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 3" "x" x[3]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 3" "y" y[3]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 4" "x" x[4]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 4" "y" y[4]
        PRINT_STRING_NOW "instalaœšo da asa delta incorreta" 6000
        TERMINATE_THIS_CUSTOM_SCRIPT
    ENDIF
    IF NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 5" "x" x[5]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 5" "y" y[5]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 6" "x" x[6]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 6" "y" y[6]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 7" "x" x[7]
    OR NOT READ_FLOAT_FROM_INI_FILE "cleo\asa_delta.ini" "Localização 7" "y" y[7]
        PRINT_STRING_NOW "instalaœšo da asa delta incorreta" 6000
        TERMINATE_THIS_CUSTOM_SCRIPT
    ENDIF
    
loop:
    WAIT 0
    IF LOCATE_CHAR_ANY_MEANS_2D scplayer x[1] y[1] 160.0 160.0 FALSE //el astillho
        x[0] = x[1]
        y[0] = y[1]
        angulo = 1.5
    ELSE
        IF LOCATE_CHAR_ANY_MEANS_2D scplayer x[2] y[2] 160.0 160.0 FALSE //predio ls
            x[0] = x[2]
            y[0] = y[2]
            angulo = 256.1
        ELSE
            IF LOCATE_CHAR_ANY_MEANS_2D scplayer x[3] y[3] 160.0 160.0 FALSE //chilliad
                x[0] = x[3]
                y[0] = y[3]
                angulo = 270.9
            ELSE
                IF LOCATE_CHAR_ANY_MEANS_2D scplayer x[4] y[4] 160.0 160.0 FALSE //avião
                    x[0] = x[4]
                    y[0] = y[4]
                    angulo = 1.5
                ELSE
                    IF LOCATE_CHAR_ANY_MEANS_2D scplayer x[5] y[5] 160.0 160.0 FALSE //RED COUNy
                        x[0] = x[5]
                        y[0] = y[5]
                        angulo = 1.5
                    ELSE
                        IF LOCATE_CHAR_ANY_MEANS_2D scplayer x[6] y[6] 160.0 160.0 FALSE //arco del oeste 50.876976
                            x[0] = x[6]
                            y[0] = y[6]
                            angulo = 179.8
                        ELSE
                            IF LOCATE_CHAR_ANY_MEANS_2D scplayer x[7] y[7] 160.0 160.0 FALSE
                                x[0] = x[7]
                                y[0] = y[7]
                                angulo = 50.8
                            ELSE
                                x[0] = 5000.0
                                y[0] = 5000.0
                            ENDIF
                        ENDIF
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF

    IF DOES_OBJECT_EXIST asa
        GET_OBJECT_COORDINATES asa x[0] y[0] z[0]
    ENDIF
 
    IF LOCATE_CHAR_ANY_MEANS_2D scplayer x[0] y[0] 110.0 110.0 FALSE
        IF NOT DOES_OBJECT_EXIST asa
            REQUEST_ANIMATION "D4FHANGG1"
            REQUEST_MODEL 18631
            WHILE NOT HAS_ANIMATION_LOADED "D4FHANGG1"
            OR NOT HAS_MODEL_LOADED 18631
                WAIT 0
            ENDWHILE
            CREATE_OBJECT_NO_OFFSET 18631 x[0] y[0] -100.0 asa
            SET_OBJECT_HEADING asa angulo
        ELSE
            IF LOCATE_CHAR_ANY_MEANS_OBJECT_3D scplayer asa 5.0 5.0 3.0 FALSE
            AND IS_PLAYER_PLAYING 0
            AND NOT IS_CHAR_IN_ANY_CAR scplayer
            AND NOT IS_PLAYER_USING_JETPACK 0
                IF IS_BUTTON_PRESSED 0 15
                    WHILE IS_BUTTON_PRESSED 0 15
                        WAIT 0
                    ENDWHILE
                    IF LOCATE_CHAR_ANY_MEANS_OBJECT_3D scplayer asa 5.0 5.0 3.0 FALSE
                        SET_CURRENT_CHAR_WEAPON scplayer 0
                        SET_PLAYER_ENTER_CAR_BUTTON 0 0
                        SET_PLAYER_CYCLE_WEAPON_BUTTON 0 0
                        SET_PLAYER_FIRE_BUTTON 0 0
                        SET_PLAYER_DUCK_BUTTON 0 0
                        GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.0 0.0 0.5 x[1] y[1] x[1]
                        GET_CHAR_HEADING scplayer angulo
                        DELETE_OBJECT asa
                        CREATE_OBJECT_NO_OFFSET 18631 x[1] y[1] x[1] asa
                        SET_OBJECT_COLLISION asa TRUE
                        TASK_PICK_UP_OBJECT scplayer asa 0.15 0.85 -0.425 7 1 "NULL" "NULL" 1
                        SET_OBJECT_HEADING asa angulo
                        WHILE NOT IS_CHAR_DEAD scplayer
                            WAIT 0
                            IF IS_BUTTON_PRESSED 0 15
                                WHILE IS_BUTTON_PRESSED 0 15
                                    WAIT 0
                                ENDWHILE
                                GOSUB recriar_asa
                                GOSUB release1
                                GOTO loop
                            ENDIF
                            IF IS_CHAR_IN_ANY_CAR scplayer
                                GOSUB release
                                GOTO loop//
                            ENDIF
                            GET_CHAR_HEIGHT_ABOVE_GROUND scplayer z[0]
                            IF IS_CHAR_IN_AIR scplayer
                                IF z[0] > 3.0
                                    GET_CHAR_HEADING scplayer angulo
                                    gravidade = -1.7
                                    timerb = 0
                                    GOTO loop_asadelta
                                ENDIF
                            ENDIF
                        ENDWHILE
                        GOSUB release
                        GOTO loop
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF

    IF NOT LOCATE_CHAR_ANY_MEANS_2D scplayer x[0] y[0] 120.0 120.0 FALSE
        REMOVE_ANIMATION "D4FHANGG1"
        MARK_MODEL_AS_NO_LONGER_NEEDED 18631
        IF DOES_OBJECT_EXIST asa
            DELETE_OBJECT asa
        ENDIF
    ENDIF



GOTO loop


loop_asadelta:
    WAIT 0
    GET_POSITION_OF_ANALOGUE_STICKS 0 l_LR l_UD iDireito iDireito

    IF NOT l_LR = 0
        IF l_LR < 0 //esquerda
            IF giro_x > -40.0
                giro_x -=@ 0.7
                frente = 0.0
                frente +=@ 0.3
            ENDIF
            fTimer =# timera
            fTimer /= 1000.0
            IF fTimer < 1.9
                angulo +=@ fTimer
            ELSE
                angulo +=@ 1.9
            ENDIF
        ENDIF
        IF l_LR > 0
            IF giro_x < 40.0
                giro_x +=@ 0.7
                frente = 0.0
                frente +=@ 0.3
            ENDIF
            fTimer =# timera
            fTimer /= 1000.0
            IF fTimer < 1.9
                angulo -=@ fTimer
            ELSE
                angulo -=@ 1.9
            ENDIF
        ENDIF
    ELSE
        timera = 0
        IF giro_x > 0.0
            giro_x -=@ 0.6
            angulo -=@ 0.1
        ENDIF
        IF giro_x < 0.0
            giro_x +=@ 0.6
            angulo +=@ 0.1
        ENDIF
        IF giro_x > -0.4
        AND giro_x < 0.4
            giro_x = 0.0
            frente = 0.0
            frente +=@ 0.35
        ENDIF
    ENDIF

    IF NOT l_UD = 0
        IF l_UD < 0//cima
            giro_y -=@ 0.5
            gravidade = 0.0
            gravidade +=@ 0.4
        ENDIF
        IF l_UD > 0//baixo
            IF NOT giro_y > 12.0
                giro_y +=@ 0.5
            ENDIF
            frente = 0.0
            frente +=@ 0.2
        ENDIF            
    ELSE
        IF giro_y > 0.0
            giro_y -=@ 0.125
        ENDIF
        IF giro_y < 0.0
            giro_y +=@ 0.125
        ENDIF
    ENDIF
    IF giro_y >= 0.5
    AND giro_y <= -0.5
        giro_y = 0.0
        gravidade +=@ -3.5
    ENDIF



    //IF gravidade > -4.6
    //AND gravidade < 1.4
    //    gravidade = 0.0
    //ENDIF

    GET_CHAR_HEIGHT_ABOVE_GROUND scplayer z[0]
    IF z[0] > 80.0
        timerb = 0
        gravidade = 0.0
        gravidade +=@ -4.5
        //frente +=@ 0.2
    ENDIF
    IF timerb > 3000
    OR gravidade = 0.0
        gravidade = 0.0
        gravidade +=@ -2.7
    ENDIF

    IF giro_y < -0.5
        gravidade = 0.0
        gravidade +=@ giro_y
    ENDIF

    fps = 0.0
    fps +=@ 1.0
    GOSUB corrigir_fps    

    //PRINT_FORMATTED_NOW "%.2f %.2f %i" 1 z[0] gravidade timerb
    SET_CHAR_VELOCITY scplayer 0.0 0.0 gravidade

    TASK_PLAY_ANIM_NON_INTERRUPTABLE scplayer "D4FHANGG1" "D4FHANGG1" 10.0 1 0 0 0 -1

    SET_CHAR_HEADING scplayer angulo
    SET_CHAR_ROTATION scplayer giro_y giro_x angulo

    GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.0 frente 0.0 x[1] y[1] z[1]
    GET_CHAR_COORDINATES scplayer x[0] y[0] z[0]
    CLEO_CALL SetCharPosSimple 0 scplayer x[1] y[1]

    IF IS_CHAR_IN_WATER scplayer
    OR NOT IS_CHAR_HEALTH_GREATER scplayer 1
        GOSUB release
        GOTO loop
    ENDIF

    IF IS_BUTTON_PRESSED 0 15
        WHILE IS_BUTTON_PRESSED 0 15
            WAIT 0
        ENDWHILE
        GOSUB recriar_asa
        GOSUB release1
        GOTO loop
    ENDIF



    GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.0 1.5 0.0 x[1] y[1] z[1]
    GET_CHAR_COORDINATES scplayer x[0] y[0] z[0]
    IF NOT IS_LINE_OF_SIGHT_CLEAR x[0] y[0] z[0] x[1] y[1] z[1] 1 1 0 1 0
        GOSUB release
        GOTO loop//
    ENDIF
    GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 1.5 1.0 0.0 x[1] y[1] z[1]
    GET_CHAR_COORDINATES scplayer x[0] y[0] z[0]
    IF NOT IS_LINE_OF_SIGHT_CLEAR x[0] y[0] z[0] x[1] y[1] z[1] 1 1 0 1 0
        GOSUB release
        GOTO loop//
    ENDIF
    GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer -1.5 1.0 0.0 x[1] y[1] z[1]
    GET_CHAR_COORDINATES scplayer x[0] y[0] z[0]
    IF NOT IS_LINE_OF_SIGHT_CLEAR x[0] y[0] z[0] x[1] y[1] z[1] 1 1 0 1 0
        GOSUB release
        GOTO loop//
    ENDIF

    GET_CHAR_HEIGHT_ABOVE_GROUND scplayer altura
    IF altura < 1.6
        GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.0 2.0 0.0 x[0] y[0] z[0]
        GET_GROUND_Z_FOR_3D_COORD x[0] y[0] z[0] z[1]
        GET_DISTANCE_BETWEEN_COORDS_3D x[0] y[0] z[0] x[1] y[1] z[1] z[1]
        IF z[1] < 4.0                    
            TASK_PLAY_ANIM_NON_INTERRUPTABLE scplayer "FALL_collapse" "ped" 4.0 0 1 1 1 -1
            WAIT 1000
            CLEAR_CHAR_TASKS_IMMEDIATELY scplayer
            GOSUB recriar_asa
            GOSUB release1
            GOTO loop
        ENDIF
    ENDIF

GOTO loop_asadelta

release:
    CLEAR_CHAR_TASKS_IMMEDIATELY scplayer
    REMOVE_ANIMATION "D4FHANGG1"
    SET_CHAR_ROTATION scplayer 0.0 0.0 0.0
    RESTORE_CAMERA
    CAMERA_RESET_NEW_SCRIPTABLES
    MARK_MODEL_AS_NO_LONGER_NEEDED 18631
    IF DOES_OBJECT_EXIST asa
        DELETE_OBJECT asa
    ENDIF
release1:
    SET_PLAYER_CYCLE_WEAPON_BUTTON 0 1
    SET_PLAYER_ENTER_CAR_BUTTON 0 1
    SET_PLAYER_CYCLE_WEAPON_BUTTON 0 1
    SET_PLAYER_FIRE_BUTTON 0 1
    SET_PLAYER_DUCK_BUTTON 0 1
RETURN

recriar_asa:
    IF DOES_OBJECT_EXIST asa
        GET_OBJECT_HEADING asa angulo
        DELETE_OBJECT asa
    ENDIF
    IF NOT DOES_OBJECT_EXIST asa
        GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.9 2.9 0.0 x[1] y[1] z[1]
        GET_CHAR_COORDINATES scplayer x[0] y[0] z[0]
        IF IS_LINE_OF_SIGHT_CLEAR x[0] y[0] z[0] x[1] y[1] z[1] 1 1 0 1 0
            GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.5 2.5 0.0 x[1] y[1] z[1]
            CREATE_OBJECT_NO_OFFSET 18631 x[1] y[1] -100.0 asa
            SET_OBJECT_HEADING asa angulo
        ELSE
            GOSUB release
        ENDIF
    ENDIF
RETURN

corrigir_fps:
    IF fps > 2.9
        gravidade /= 3.0
    ELSE
        IF fps > 2.4
            gravidade /= 2.5
        ELSE
            IF fps > 1.9
                gravidade /= 2.0
            ELSE
                IF fps > 1.5
                    gravidade /= 1.66
                ELSE
                    IF fps > 1.3
                        gravidade /= 1.42
                    ELSE
                        IF fps > 1.2
                            gravidade /= 1.25
                        ELSE
                            IF fps > 1.0
                                gravidade /= 1.11
                            ENDIF
                        ENDIF
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
    ENDIF
RETURN

}

{
    LVAR_INT hChar // In
    LVAR_FLOAT x y // In
    LVAR_INT pPed pMatrix pCoord

    SetCharPosSimple:
    GET_PED_POINTER hChar pPed
    pMatrix = pPed + 0x14
    READ_MEMORY pMatrix 4 FALSE (pMatrix)
    pCoord = pMatrix + 0x30
    WRITE_MEMORY pCoord 4 (x) FALSE
    pCoord += 0x4 // y
    WRITE_MEMORY pCoord 4 (y) FALSE
    CLEO_RETURN 0 ()
}
SCRIPT_END
Download

Re: Asa Delta (remake)

Enviado: 27 Nov 2018, 20:21
por Markmadrox
Gostei !! se possível adiciona mais umas em LV e SF no alto dos prédios ou cria um sistema onde nós possamos adicionar outras e ir contribuindo postando um "save" dos locais que adicionamos ... 

Re: Asa Delta (remake)

Enviado: 28 Nov 2018, 08:33
por nadalao
verdade cara, eu vou criar um sistema pra escolher as localizações por .ini

Re: Asa Delta (remake)

Enviado: 28 Nov 2018, 18:44
por Markmadrox
nadalao escreveu:
28 Nov 2018, 08:33
verdade cara, eu vou criar um sistema pra escolher as localizações por .ini
Obrigado por responder

Re: Asa Delta (remake)

Enviado: 29 Nov 2018, 01:16
por CarlosJSantos
ficou top pakarai

Re: Asa Delta (remake)

Enviado: 29 Nov 2018, 08:19
por nadalao
CarlosJSantos escreveu:
29 Nov 2018, 01:16
ficou top pakarai

muito massa você ter gravado um vídeo!!

Re: Asa Delta (remake)

Enviado: 01 Dez 2018, 22:03
por Junior_Djjr
http://www.mixmods.com.br/2018/12/mod-a ... emake.html

Eu dei uma corrigida na instalação, estava incompatível com praticamente todos os mods que adicionam objetos (que não são da MixMods, né) por causa do ID usado.

Também usei .txt em vez de gta.dat.

Re: Asa Delta (remake)

Enviado: 01 Dez 2018, 23:46
por CarlosJSantos
Junior_Djjr escreveu:
01 Dez 2018, 22:03
http://www.mixmods.com.br/2018/12/mod-a ... emake.html

Eu dei uma corrigida na instalação, estava incompatível com praticamente todos os mods que adicionam objetos (que não são da MixMods, né) por causa do ID usado.

Também usei .txt em vez de gta.dat.
(bug_1)
pega o voo, pega estabilidade e aperta F pra vc ver.
bug 2
pega altura e segura w até bugar, ae depois o mod n funciona mais kkk
SpoilerAbrir
Imagem

Fiz um fix pra isso mas ao sair da asa delta ela vai diretamente ao solo, acho melhor tirar a opção de "sair"
momentaneamente adicionei um paraquedas pra ficar mais real.

SpoilerAbrir


 

Re: Asa Delta (remake)

Enviado: 02 Dez 2018, 02:06
por FilipeS
Bacana, mas acho que se coloca um cam shake levinho da um efeito legal..

Re: Asa Delta (remake)

Enviado: 02 Dez 2018, 19:56
por Junior_Djjr
FilipeS escreveu:
02 Dez 2018, 02:06
Bacana, mas acho que se coloca um cam shake levinho da um efeito legal..
O foda é conseguir deixar "levinho", saporra treme demais facilmente.

Re: Asa Delta (remake)

Enviado: 03 Dez 2018, 16:43
por FilipeS
Junior_Djjr escreveu:
02 Dez 2018, 19:56
FilipeS escreveu:
02 Dez 2018, 02:06
Bacana, mas acho que se coloca um cam shake levinho da um efeito legal..
O foda é conseguir deixar "levinho", saporra treme demais facilmente. 

mas é float '-', nem que seja 0.000000004 tem jeito..

Re: Asa Delta (remake)

Enviado: 03 Dez 2018, 22:18
por Junior_Djjr
FilipeS escreveu:
03 Dez 2018, 16:43
Junior_Djjr escreveu:
02 Dez 2018, 19:56
FilipeS escreveu:
02 Dez 2018, 02:06
Bacana, mas acho que se coloca um cam shake levinho da um efeito legal..
O foda é conseguir deixar "levinho", saporra treme demais facilmente.  

mas é float '-', nem que seja 0.000000004 tem jeito..  
Quê, não é float não. Não é nem intensidade, é tempo.

Re: Asa Delta (remake)

Enviado: 03 Dez 2018, 22:56
por FilipeS
Junior_Djjr escreveu:
03 Dez 2018, 22:18
FilipeS escreveu:
03 Dez 2018, 16:43
Junior_Djjr escreveu:
02 Dez 2018, 19:56
FilipeS escreveu:
02 Dez 2018, 02:06
Bacana, mas acho que se coloca um cam shake levinho da um efeito legal..
O foda é conseguir deixar "levinho", saporra treme demais facilmente.   

mas é float '-', nem que seja 0.000000004 tem jeito..   
Quê, não é float não. Não é nem intensidade, é tempo. 

a