Pay 'n' Spray realista

    Compartilhe
    avatar
    RafaQN
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 97
    Reputação : 12
    Desde : 18/10/2015
    Idade : 23
    Localização : São Paulo - SP

    Pay 'n' Spray realista

    Mensagem por RafaQN em Ter 19 Jan 2016, 16:01

    Olá galera, gostaria de pedir ajuda num script simples que estou fazendo, muito interessante, mas imperfeito.
    Trata-se de tornar inativo o pay 'n' spray quando procurado e quando tiver um policial por perto.

    A princípio, consegui realizar isso, mas ainda tem bugs, que, por exemplo, se você entrar num pay 'n' spray e um policial se aproximar, o jogo vai travar (não sei a respeito de crash, acredito que não tenha pelo que fiz).
    Tem algum jeito de verificar se o player está dentro do pay 'n' spray e está a ter o veículo reformado e repintado?

    Agradeço a ajuda.

    Código:
    {$CLEO}
    0000:

    while true
        wait 500
        if and
        0256:   player $PLAYER_CHAR defined
        010F:   player $PLAYER_CHAR wanted_level > 0
        then
            0A8D: 29@ = read_memory 0xB74490 size 4 virtual_protect 0
            000A: 29@ += 0x4
            0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0
            for 30@ = 0 to 35584 step 0x100
                0A8D: 31@ = read_memory 29@ size 1 virtual_protect 0
                000A: 29@ += 0x1
                if and
                0029:  31@ >= 0x00
                001B:  0x80 > 31@
                then
                    005A: 31@ += 30@
                    089F: get_actor 31@ pedtype_to 0@
                    if  0039:   0@ == 6
                    then
                        if  0104:   actor 31@ near_actor $PLAYER_ACTOR radius 15.0 15.0 15.0 sphere 0
                        then
                            0A14: disable_respray_garages 1
                            while true
                                wait 500
                                if or
                                8256:   not   player $PLAYER_CHAR defined
                                8104:   not actor 31@ near_actor $PLAYER_ACTOR radius 15.0 15.0 15.0 sphere 0
                                810F:   not player $PLAYER_CHAR wanted_level > 0
                                then
                                    0A14: disable_respray_garages 0
                                    break
                                end
                            end
                        end
                    end
                end        
            end
        end
    end
    avatar
    RafaQN
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 97
    Reputação : 12
    Desde : 18/10/2015
    Idade : 23
    Localização : São Paulo - SP

    Re: Pay 'n' Spray realista

    Mensagem por RafaQN em Qui 21 Jan 2016, 23:39

    Olá galera, estou tentando fazer um pay'n spray onde não ative caso a polícia esteja por perto.

    Código:
    {$CLEO}
    thread "PayNSpr"
    0000:

    //Loop principal do mod
    while true
        wait 0
        if 0256:   player $PLAYER_CHAR defined
        then
            0AB1: call_scm_func @LOOKINGFOR 0 retorna 0@
            if  0039:   0@ == 1
            then
                if  010F:   player $PLAYER_CHAR wanted_level > 0
                then
                    0A8D: 29@ = read_memory 0xB74490 size 4 virtual_protect 0
                    000A: 29@ += 0x4
                    0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0
                    for 30@ = 0 to 35584 step 0x100
                        0A8D: 31@ = read_memory 29@ size 1 virtual_protect 0
                        000A: 29@ += 0x1
                        if and
                            0029:  31@ >= 0x00
                            001B:  0x80 > 31@
                        then
                            005A: 31@ += 30@
                            089F: get_actor 31@ pedtype_to 1@
                            if and
                                //Verificando se tem polcial por perto da área
                                0039:   1@ == 6
                                0104:   actor 31@ near_actor $PLAYER_ACTOR radius 25.0 25.0 25.0 sphere 0
                            then
                                0A14: disable_respray_garages 1
                                while true
                                    wait 0
                                    0ACD: show_text_highpriority "~r~I THINK NOBODY IS SO STUPID TO DO IT..." time 100
                                    0AB1: call_scm_func @LOOKINGFOR 0 retorna 0@
                                    if or
                                        8256:   not player $PLAYER_CHAR defined
                                        810F:   not player $PLAYER_CHAR wanted_level > 0
                                        0039:   0@ == 0
                                    then
                                        0A14: disable_respray_garages 0
                                        01C2: remove_references_to_actor 31@ // Like turning an actor into a random pedestrian
                                        break
                                    end
                                end
                            end
                        end
                    end
                    while true
                        wait 0
                        0AB1: call_scm_func @LOOKINGFOR 0 retorna 0@
                        if or
                            0039:   0@ == 0
                            8256:   not player $PLAYER_CHAR defined
                        then    break
                        end
                    end
                else
                    while true
                        wait 0
                        0AB1: call_scm_func @LOOKINGFOR 0 retorna 0@
                        if or
                            0039:   0@ == 0
                            8256:   not player $PLAYER_CHAR defined
                        then    break
                        end
                    end                    
                end
            end
        end
    end

    //Função para verificar se o player está na área de algum Pay'n Spray segundo o .ini
    //Possui função de verificar se o .ini está bem definido
    //Retorna 0 se não estiver em Pay'n spray nenhum. Caso contrário, retorna 1.
    :LOOKINGFOR

    //Verificando se o .ini existe
    if 8AAB:   not file_exists "cleo\Paynspray.ini"
    then
        0ACD: show_text_highpriority "Unable to load1 ~b~'CLEO/Paynspray.ini'" time 5000
        0A93: end_custom_thread
    end

    //Pegando o valor de ativação do mod
    if  8AF0: 0@ = get_int_from_ini_file "cleo\Paynspray.ini" section "Settings" key "Amount"
    then 0@ = -1
    end
    if  not 0@ > 0
    then
        0ACD: show_text_highpriority "Unable to load2 ~b~'CLEO/Paynspray.ini'" time 5000
        0A93: end_custom_thread
    end

    For 1@ = 1 to 0@
        0093: 1@ = integer 1@ to_float
        0087: 5@ = 1@ // (float)
        0AED: 1@v = float 1@ to_string_format "%.15g"
        
        //Coord X
        if  8AF2: 2@ = get_float_from_ini_file "cleo\Paynspray.ini" section 1@v key "CX"
        then
            0ACD: show_text_highpriority "Unable to load3 ~b~'CLEO/Paynspray.ini'" time 5000
            0A93: end_custom_thread
        end
        
        //Coord Y
        if  8AF2: 3@ = get_float_from_ini_file "cleo\Paynspray.ini" section 1@v key "CY"
        then
            0ACD: show_text_highpriority "Unable to load3 ~b~'CLEO/Paynspray.ini'" time 5000
            0A93: end_custom_thread
        end
        
        //Coord Z
        if  8AF2: 4@ = get_float_from_ini_file "cleo\Paynspray.ini" section 1@v key "CZ"
        then
            0ACD: show_text_highpriority "Unable to load3 ~b~'CLEO/Paynspray.ini'" time 5000
            0A93: end_custom_thread
        end
        
        //Verificando se está no espaço datado
        if  0100:   actor $PLAYER_ACTOR in_sphere 2@ 3@ 4@ radius 8.0 8.0 8.0 sphere 0 in_car
        then
            0AB2: ret 1 1
        end
        0092: 1@ = float 5@ to_integer      
    end

    0AB2: ret 1 0
    O mod é baseado por .ini, que seria esse abaixo:

    Paynspray.ini:
    [Settings]
    Amount = 10

    ;LOS SANTOS
    ;Idlewood
    [1]
    CX = 2065.24  
    CY = -1831.46
    CZ = 13.55
    ;Temple
    [2]
    CX = 1025.01
    CY = -1024.72
    CZ = 32.10
    ; Saint Maria Beach
    [3]
    CX = 487.39
    CY = -1740.02
    CZ = 11.13

    ;COUNTY
    ;Dillimore
    [4]
    CX = 719.86
    CY = -457.80
    CZ = 16.34

    ;SANFIERRO
    ;Doherty
    [5]
    CX = -1904.86
    CY = 284.15
    CZ = 41.05
    ;Juniper Hollow
    [6]
    CX = -2425.38
    CY = 1021.54
    CZ = 50.40
    ;Michelle's garage
    [7]
    CX = -1787.283
    CY = 1216.9333
    CZ = 25.15

    ;DESERT
    ;El Quebrados
    [8]
    CX = -1420.37
    CY = 2584.43
    CZ = 55.84
    ;Fort Carson
    [9]
    CX = -100.11
    CY = 1117.90
    CZ = 19.74

    ;LAS VENTURAS
    ;Redsands West
    [10]
    CX = 1974.62
    CY = 2162.76
    CZ = 11.07

    A ideia do .ini é o mod funcionar com outros tipos de totais conversões, só colocar a coordenada central dos pay'n spray's e estará funcionado.

    Está funcionando basicamente, mas alguns bugs aparentes que encontrei:
    - A polícia continua ignorando se você está dentro de uma dessas garagens;
    - Queria fazer um texto central como é no pay'n spray em outros casos de recusa, não sei qual o opcode certo;
    - Talvez um jeito de não precisar desse .ini talvez dê certo inclusive.

    Devo ter esquecido de algum detalhe. Qualquer coisa, falo novamente. vlw
    avatar
    Elyzandro
    Veterano
    Veterano

    Mensagens : 2920
    Reputação : 81
    Desde : 31/07/2013

    Re: Pay 'n' Spray realista

    Mensagem por Elyzandro em Qui 21 Jan 2016, 23:58

    Legal a ideia :D
    Só não testei, pra tu ter ideia, testei acho que ontem o seu MOD Real Area 69. pokerface


    ____________________
    I̜mpe͢r͚at̲ivoͯ, ͘no̅ mụnd̶o͋ ̺sl͟o͗w
    ́Co͔m͢ó ̼a ̒p̎eçͦa̲ ̖MC͝s ̚só͊ ͡faz̀em̈́ ̛s̸p͆ee͌df̡l̡owͭ
    ̟Pͭra ̌que̲ ä́ p̐r͜es̋s͉aͤ?
    avatar
    israel
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Mensagens : 657
    Reputação : 111
    Desde : 22/09/2015
    Idade : 19
    Localização : Salvador - BA

    Re: Pay 'n' Spray realista

    Mensagem por israel em Sex 22 Jan 2016, 00:35

    (Só vi o tópico hoje)

    Teste ai :
    Código:
    0A8D: 0@ = read_memory 0x96BFE4 size 1 virtual_protect 0
    if 0@ == true
    then
        // Tá num pay 'n' spray            
    end
    Se não funcionar, diga ;-;


    ____________________
    " Everyone gonna remember my name ! "
    avatar
    RafaQN
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 97
    Reputação : 12
    Desde : 18/10/2015
    Idade : 23
    Localização : São Paulo - SP

    Re: Pay 'n' Spray realista

    Mensagem por RafaQN em Sex 22 Jan 2016, 01:32

    Vlw @Israel , diminuiu um .ini e metade das linhas do script

    Código:
    {$CLEO}
    thread "PayNSpr"
    0000:
    while true
        wait 100
        0A8D: 0@ = read_memory 0x96BFE4 size 1 virtual_protect 0    //Veificador se está num pay 'n spray
        if and
        0256:   player $PLAYER_CHAR defined
        010F:   player $PLAYER_CHAR wanted_level > 0
        0039:   0@ == true
        then
            //Caso seja definido, procurado e que esteja num pay'n spray, verificar se não há policial por perto
            0A8D: 29@ = read_memory 0xB74490 size 4 virtual_protect 0
            000A: 29@ += 0x4
            0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0
            for 30@ = 0 to 35584 step 0x100
                0A8D: 31@ = read_memory 29@ size 1 virtual_protect 0
                000A: 29@ += 0x1
                if and
                    0029:  31@ >= 0x00
                    001B:  0x80 > 31@
                then
                    005A: 31@ += 30@
                    089F: get_actor 31@ pedtype_to 1@
                    if and
                        //Verificando se tem polcial por perto da área
                        0039:   1@ == 6
                        0104:   actor 31@ near_actor $PLAYER_ACTOR radius 25.0 25.0 25.0 sphere 0
                    then
                        //Se tiver, o pay'n spray não funcionará!
                        0A14: disable_respray_garages 1
                        while true
                            wait 10
                            0ACD: show_text_highpriority "~r~I THINK NOBODY IS SO STUPID TO DO IT..." time 100
                            0A8D: 0@ = read_memory 0x96BFE4 size 1 virtual_protect 0
                            if or
                                8256:   not player $PLAYER_CHAR defined
                                810F:   not player $PLAYER_CHAR wanted_level > 0
                                0039:   0@ == false
                            then
                                0A14: disable_respray_garages 0
                                break
                            end
                        end
                    end
                end
            end
            //Caso esteja num pay'n spray, estive sendo procurado e não tiver policial por perto, é para evitar do pay'n spray travar
            while true
                wait 10
                0A8D: 0@ = read_memory 0x96BFE4 size 1 virtual_protect 0
                if or
                    0039:   0@ == false
                    8256:   not player $PLAYER_CHAR defined
                then    break
                end                
            end
        end
    end

    Apesar disso, ainda não resolveu nenhum dos problemas de scripts anteriores...

    Deixa eu perguntar:
    - Como faço pra ver as memórias do jogo como essa (li o tutorial de memória e arrays, mas não sei como procurar os bancos de memória e ver a que quero)?;
    - Tem como saber qual memória é num script descompilado (muda o número da memória);
    - Essa memória pega quando você está numa garagem, certo?
    avatar
    israel
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Mensagens : 657
    Reputação : 111
    Desde : 22/09/2015
    Idade : 19
    Localização : Salvador - BA

    Re: Pay 'n' Spray realista

    Mensagem por israel em Sex 22 Jan 2016, 01:46

    - Como faço pra ver as memórias do jogo como essa (li o tutorial de memória e arrays, mas não sei como procurar os bancos de memória e ver a que quero)?;
    Tem várias formas. O Jr fez um tutorial básico ensinando a achar endereços usando disasm. Veja aqui.
    - Tem como saber qual memória é num script descompilado (muda o número da memória);
    Quando você compila o script, o endereço é convertido para decimal. Dê um CTRL + H nele.
    - Essa memória pega quando você está numa garagem, certo?
    Parece que sim. Só testei no pay 'n' spray, não percebi que é pra qualquer garagem ;-;
    avatar
    RafaQN
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 97
    Reputação : 12
    Desde : 18/10/2015
    Idade : 23
    Localização : São Paulo - SP

    Re: Pay 'n' Spray realista

    Mensagem por RafaQN em Sex 22 Jan 2016, 01:59

    Parece que sim. Só testei no pay 'n' spray, não percebi que é pra qualquer garagem ;-;
    Não sei também, só testei na garagem da Transfender e acionou também, foi só uma suposição...
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18620
    Reputação : 338
    Desde : 04/05/2012
    Idade : 20
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Pay 'n' Spray realista

    Mensagem por Fabio em Sex 22 Jan 2016, 03:15

    Acho que você poderá tirar algum proveito desse mod: http://brmodstudio.forumeiros.com/t4227-selecionar-cor-no-pay-n-spray



    Não to muito legal para ajudar com um script hoje, quem sabe mais tarde.


    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'
    avatar
    Killer_xD
    Veterano
    Veterano

    Mensagens : 958
    Reputação : 49
    Desde : 16/02/2015
    Idade : 19
    Localização : Mato Grosso
    Link : Ednaldo Pereira

    Re: Pay 'n' Spray realista

    Mensagem por Killer_xD em Sex 22 Jan 2016, 08:14

    Ia se legal se desse pra escolher a cor dentro das cores setadas pro carro,  igual esse mod do fabia, soq só com as cores setadas no carcols, e nao todas do jogo, tipo como aparece no GGMM

    (No caso sao as cores do sentinel)


    ____________________
    Minha Workshop
    Abrir carros do 3DS Max no ZModeler
    Converter Modelos do Mafia III
    Armas do Mafia 3 .sds
    PC:
    HD 300GB e 1TB
    Processador AMD FX-6300 3.5Ghz
    Placa de video XFX Radeon R7 260x 1 GB
    8 Gb Ram(2x4) Kingston 1333Mhz DDR3
    Placa Mae Gigabite GA-78LMT-USB3 Rev 5.0 AM3+
    avatar
    RafaQN
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 97
    Reputação : 12
    Desde : 18/10/2015
    Idade : 23
    Localização : São Paulo - SP

    Re: Pay 'n' Spray realista

    Mensagem por RafaQN em Sex 22 Jan 2016, 11:58

    Puts, pra fazer isso precisaria entender um pouco mais de programação (principalmente .asi que nunca vi especificamente).
    E também queria focar em fazê-la não funcionar pra polícia como no GTA IV por exemplo. Seria bom se eu conseguisse fazê-los não me ignorar quando eu estiver dentro de uma como acontece...
    avatar
    israel
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Mensagens : 657
    Reputação : 111
    Desde : 22/09/2015
    Idade : 19
    Localização : Salvador - BA

    Re: Pay 'n' Spray realista

    Mensagem por israel em Sex 22 Jan 2016, 19:30

    @RafaQN escreveu:- Queria fazer um texto central como é no pay'n spray em outros casos de recusa, não sei qual o opcode certo;
    Código:
    0ACB: show_styled_text "~r~I THINK NOBODY IS SO STUPID TO DO IT..." time 2000 style 5


    ____________________
    " Everyone gonna remember my name ! "
    avatar
    RafaQN
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 97
    Reputação : 12
    Desde : 18/10/2015
    Idade : 23
    Localização : São Paulo - SP

    Re: Pay 'n' Spray realista

    Mensagem por RafaQN em Sab 23 Jan 2016, 01:22

    Vlw de novo @Israel .
    @Fabbio, já que você mostrou esse mod, descobri que eles são bem imcompatíveis, pois quando você entra no pay'n spray, acaba aparecendo a tela de escolha de cor mas não haverá respray. Ai buga tudo né...

    Conteúdo patrocinado

    Re: Pay 'n' Spray realista

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg 26 Jun 2017, 04:12