Página 1 de 1

[SA] Remake Mod Lanterna

Enviado: 26 Jul 2019, 12:44
por nadalao
ImagemImagem

Remake do Mod Lanterna, esse foi chato demais pra se fazer, não está perfeito mas acredito que não consigo fazer melhor,(estava enganado) então vou postar aqui assim mesmo.

- Agora ilumina pra frente ao invés de pra cima kkkkkkk
- Diminuído os bugs visuais da luz da lanterna
- Adicionado uma luz no chão
- A lanterna substitui o gun_vibe2 (foi utilizado outro modelo de lanterna, editei a textura e refiz o ícone)
- Você pode pegar a lanterna ao digitar o seguinte cheat: lanterna
- Aperte o botão de atacar para desligar a lanterna e poder correr (assim diminui e muito os bugs visuais da luz e ainda da pra correr);

*quando for salvar o jogo, coloque outra arma na mão pra ela não ficar presa no seu jogo salvo


Lanterna remake.rar
Download
(30.63 KiB) Baixado 243 vezes

Código: Selecionar tudo

SCRIPT_START
{

LVAR_INT scplayer luz obj marca var ol idist idist2
LVAR_FLOAT x[3] y[3] z[4] angulo dist

GET_PLAYER_CHAR 0 scplayer

IF IS_AUSTRALIAN_GAME
    CREATE_OBJECT_NO_OFFSET GUN_VIBE2 0.0 0.0 0.0 obj
    CREATE_SEARCHLIGHT 0.0 0.0 0.0 0.0 0.0 0.0 22.0 0.0 luz
ENDIF

WHILE NOT HAS_CHAR_GOT_WEAPON scplayer WEAPONTYPE_VIBE2
    WAIT 0
    IF TEST_CHEAT "lanterna"
        REQUEST_MODEL GUN_VIBE2
        LOAD_ALL_MODELS_NOW
        GIVE_WEAPON_TO_CHAR scplayer WEAPONTYPE_VIBE2 1
    ENDIF
ENDWHILE

REQUEST_ANIMATION "lanterna"
WHILE NOT HAS_ANIMATION_LOADED "lanterna"
    WAIT 0
ENDWHILE

WHILE TRUE
    IF IS_CURRENT_CHAR_WEAPON scplayer WEAPONTYPE_VIBE2
        WHILE IS_CURRENT_CHAR_WEAPON scplayer WEAPONTYPE_VIBE2
            IF NOT IS_CHAR_IN_AIR scplayer
            AND var = 0
                IF NOT DOES_OBJECT_EXIST obj
                    GOSUB criar
                ENDIF
                GOSUB searchlight
                WAIT 0
                GOSUB player
                IF DOES_SEARCHLIGHT_EXIST luz
                    DELETE_SEARCHLIGHT luz
                ENDIF
                IF IS_BUTTON_PRESSED 0 17
                    timera = 0
                    WHILE IS_BUTTON_PRESSED 0 17
                    AND timera < 500
                        CLEO_CALL SimulateKey 0 17
                        WAIT 0
                    ENDWHILE
                    var = 1
                ENDIF
                IF CLEO_CALL CharOnFire 0 (scplayer)
                    var = 1
                ENDIF
            ELSE
                IF IS_CHAR_PLAYING_ANIM scplayer "lanterna0"
                AND DOES_OBJECT_EXIST obj
                    DELETE_OBJECT obj
                ENDIF
                IF DOES_SEARCHLIGHT_EXIST luz
                    DELETE_SEARCHLIGHT luz
                ENDIF
                WHILE IS_CHAR_IN_AIR scplayer
                    WAIT 0
                    IF DOES_SEARCHLIGHT_EXIST luz
                        DELETE_SEARCHLIGHT luz
                    ENDIF
                ENDWHILE
                WAIT 0
                IF IS_BUTTON_PRESSED 0 17
                    timera = 0
                    WHILE IS_BUTTON_PRESSED 0 17
                    AND timera < 500
                        CLEO_CALL SimulateKey 0 17
                        WAIT 0
                    ENDWHILE
                    var = 0
                ENDIF
            ENDIF
            CLEO_CALL SimulateKey 0 17
        ENDWHILE
        IF DOES_OBJECT_EXIST obj
            DELETE_OBJECT obj
        ENDIF
    ELSE
        WAIT 0
    ENDIF
ENDWHILE

player:
    IF IS_CURRENT_CHAR_WEAPON scplayer WEAPONTYPE_VIBE2
        IF DOES_OBJECT_EXIST obj
            IF NOT IS_CHAR_PLAYING_ANIM scplayer "lanterna0"
                IF NOT IS_CHAR_IN_AIR scplayer
                    TASK_PICK_UP_OBJECT scplayer obj 0.0 0.0 0.0 6 16 "lanterna0" "lanterna" -1
                ENDIF
            ENDIF
        ENDIF
    ENDIF
RETURN

criar:
    IF NOT DOES_OBJECT_EXIST obj
        IF NOT HAS_MODEL_LOADED GUN_VIBE2
            REQUEST_MODEL GUN_VIBE2
            WHILE NOT HAS_MODEL_LOADED GUN_VIBE2
                WAIT 0
            ENDWHILE
        ENDIF
        GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.0 0.2 0.0 x[0] y[0] z[0]
        CREATE_OBJECT GUN_VIBE2 x[0] y[0] z[0] obj
        SET_OBJECT_VISIBLE obj FALSE
        TASK_PICK_UP_OBJECT scplayer obj 0.0 0.0 0.0 6 16 "lanterna0" "lanterna" -1
    ENDIF
RETURN

searchlight:
    IF DOES_OBJECT_EXIST obj
        GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS obj 0.12 0.03 0.1 x[0] y[0] z[0]
        GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.0 0.0 -0.8 x[1] y[1] z[1]
        GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.2 5.0 0.0 x[1] y[1] z[2]
        GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS obj 5.0 -1.0 0.0 x[2] y[2] z[3]
        x[1] *= 6.0
        y[1] *= 6.0
        x[1] += x[2]
        y[1] += y[2]
        x[1] /= 7.0
        y[1] /= 7.0
        CREATE_SEARCHLIGHT x[0] y[0] z[0] x[1] y[1] z[1] 17.5 0.0 luz
        //chão
        GET_CHAR_HEADING scplayer angulo
        angulo *= 0.0174533
        GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.8 40.0 -4.0 x[1] y[1] z[2]
        GET_OFFSET_FROM_OBJECT_IN_WORLD_COORDS obj 20.0 -8.0 -4.0 x[2] y[2] z[3]
        x[1] *= 6.0
        y[1] *= 6.0
        x[1] += x[2]
        y[1] += y[2]
        x[1] /= 7.0
        y[1] /= 7.0
        z[1] -= 6.0
        GET_OFFSET_FROM_CHAR_IN_WORLD_COORDS scplayer 0.0 1.0 0.0 x[0] y[0] z[0]
        CLEO_CALL getIntPoint 0 x[0] y[0] z[0] x[1] y[1] z[1] 1 1 1 0 0 0x0 (x[1] y[1] z[1] dist)
        idist =# dist
        idist2 = 155
        idist *= 5
        dist /= 3.5
        idist2 -= idist
        z[1] += 10.0
        IF idist2 > 0
            DRAW_SHADOW 3 x[1] y[1] z[1] angulo dist 1 idist2 idist2 idist2
        ENDIF
    ENDIF
RETURN
}

{
getIntPoint:
    LVAR_FLOAT fromX fromY fromZ toX toY toZ
    LVAR_INT bBuilding bCar bActor bObject bParticle
    LVAR_INT ignoreEntity 
    LVAR_FLOAT intPointX intPointY intPointZ fDistance
    LVAR_INT var1 var2 var3 var4
    LVAR_INT bReturn
    LVAR_INT var5 var6 var7
    LVAR_INT var8
    IF NOT ignoreEntity = 0x0
        WRITE_MEMORY 0xB7CD68 4 ignoreEntity FALSE
    ENDIF
    GET_VAR_POINTER (fromX) (var1)  // from 0-2
    GET_VAR_POINTER (toX) (var2)    // to 3-5
    GET_VAR_POINTER (intPointX) (var3)  // out 12-14
    GET_VAR_POINTER (fDistance) (var4)  // out 15
    CALL_FUNCTION 0x56BA00 12 12 (0 0 0) (bParticle bObject bActor bCar bBuilding) (var4 var3 var2 var1) bReturn
    IF NOT ignoreEntity = 0x0
        WRITE_MEMORY 0xB7CD68 4 0 FALSE
    ENDIF
    GET_VAR_POINTER (var5) (var8)
    IF NOT bReturn = 0
        IF NOT intPointX = 0.0
        AND NOT intPointY = 0.0
        AND NOT intPointZ = 0.0
            GET_DISTANCE_BETWEEN_COORDS_3D (fromX fromY fromZ) (intPointX intPointY intPointZ) (fDistance)
        ENDIF
    ELSE
        fDistance = 0.0
    ENDIF
CLEO_RETURN 0 intPointX intPointY intPointZ fDistance
}
{
SimulateKey:
    LVAR_INT adress
    adress *= 2
    adress += 0xB73458 
    WRITE_MEMORY adress 2 0 0
CLEO_RETURN 0
}
{
CharOnFire:
    LVAR_INT hChar // in
    LVAR_INT p i
    GET_PED_POINTER hChar (p)
    i = p + 0x730 //m_pFire
    READ_MEMORY i 4 FALSE (i)
    IF NOT i = 0
        RETURN_TRUE
        CLEO_RETURN 0
    ENDIF
    RETURN_FALSE
CLEO_RETURN 0
}
SCRIPT_END

Re: [SA] Remake Mod Lanterna

Enviado: 28 Jul 2019, 16:47
por Runner
Tem alguma forma de desativar o prelight noturno dos modelos jogo? nesse caso acho que a lanterna seria mais útil.
Daria pra fazer uns dyom de terror etc.


Pode fazer remake do mod de cover?

https://www.gtainside.com/en/sanandreas ... er-system/


Ele parece ser bom, mas nunca foi postado na mixmods mesmo depois de várias sugestões. Talvez o script seja ruim.
Com certeza tem coisas que deve dar pra melhorar nele.

Uma coisa legal seria poder mover os braços para trás pra poder atirar enquanto está fazendo cover.

Re: [SA] Remake Mod Lanterna

Enviado: 29 Jul 2019, 00:46
por Junior_Djjr
Runner escreveu:
28 Jul 2019, 16:47
Tem alguma forma de desativar o prelight noturno dos modelos jogo? nesse caso acho que a lanterna seria mais útil.
Daria pra fazer uns dyom de terror etc.
Nunca será útil, as lanternas do jogo são só um decal de um desenho branco, não existe iluminação alguma.
No momento somente o RenderHook coloca iluminação per-pixel, não sei se esse mod é compatível com ele.

Re: [SA] Remake Mod Lanterna

Enviado: 29 Jul 2019, 10:51
por nadalao
Melhorei esse mod, troquei a luz que fica no chão por uma circular ao invés de um farol de carro e fiz com que essa luz não tenha uma distância fixa do player e fiz um sisteminha pra desligar a lanterna pra poder correr com ela na mão.