Coordenada sendo registrada de modo errado

    Compartilhe
    avatar
    NathanT
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 41
    Reputação : 0
    Desde : 12/12/2015
    Idade : 14

    Coordenada sendo registrada de modo errado

    Mensagem por NathanT em Ter 28 Mar 2017, 14:47

    Olá, venho pedir ajuda sobre um problema que apareceu enquanto estava criando um mod cleo, acontece que, o jogador deverá fazer uma entrega em um local aleatório e para isso acontecer eu dou um valor aleatório a uma variável e depois comparo cada valor; se o valor for tal, o local de entrega deve ser este... Apesar de eu inserir corretamente as coordenadas que quero, no jogo aparece elas diferentes.
    Código:
    Código:

    0209: route = random_int_in_ranges 0 5
    if or
    route == 1
    route == 0
    then
        0005: 4@ = -489.3065
        0005: 5@ = -558.7218
        0005: 6@ = 25.5234
        0AD3: zone_route = format "%s" "Fallen Tree"
    end
    if route == 2
    then
        0005: 4@ = -1819.5201
        0005: 5@ = 2.1698
        0005: 6@ = 15.1172
        0AD3: zone_route = format "%s" "Doherty"
    end
    if route == 3
    then
        0005: 4@ = -1358.6582
        0005: 5@ = 2068.6035
        0005: 6@ = 52.4465
        0AD3: zone_route = format "%s" "Tierra Robada"
    end
    if or
    route == 4
    route == 5
    then
        0005: 4@ = -285.4091
        0005: 5@ = 2660.9941
        0005: 6@ = 62.6619
        0AD3: zone_route = format "%s" "Las Payasadas"
    end

    OBS: Coloquei um 0AD1 in-game para ver se eram as coordenadas que estavam bugadas ou a sintaxe do opcode do blip.


    ____________________
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18604
    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: Coordenada sendo registrada de modo errado

    Mensagem por Fabio em Ter 28 Mar 2017, 15:22

    Teoricamente o 0005 é para ser usado com variáveis globais, o recomendável é usar sem opcode para esses casos,  o sanny builder colocará automaticamente o opcode correto.

    Seria melhor que você mostrasse como está printando (com o 0AD1) também.


    ____________________

    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
    NathanT
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 41
    Reputação : 0
    Desde : 12/12/2015
    Idade : 14

    Re: Coordenada sendo registrada de modo errado

    Mensagem por NathanT em Ter 28 Mar 2017, 16:07

    @Fabio escreveu:Teoricamente o 0005 é para ser usado com variáveis globais, o recomendável é usar sem opcode para esses casos,  o sanny builder colocará automaticamente o opcode correto.

    Seria melhor que você mostrasse como está printando (com o 0AD1) também.
    Eu coloquei o opcode para tentar ver se isso resolveria o problema.
    A linha do 0AD1 tá assim:
    Código:
    0AD1: show_formatted_text_highpriority "%f, %f, %f" time 40000 4@ 5@ 6@
    O blip foi marcado porém lá pro oceano, bem pra fora do mapa, já nas bordas.


    ____________________
    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: Coordenada sendo registrada de modo errado

    Mensagem por israel em Ter 28 Mar 2017, 17:33

    Tem algo errado, mas sem o código completo, complica...
    E só pra avisar, "route" nunca vai ser 5, ok. :v:


    ____________________
    " Everyone gonna remember my name ! "
    avatar
    NathanT
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 41
    Reputação : 0
    Desde : 12/12/2015
    Idade : 14

    Re: Coordenada sendo registrada de modo errado

    Mensagem por NathanT em Ter 28 Mar 2017, 17:42

    @israel escreveu:Tem algo errado, mas sem o código completo, complica...
    E só pra avisar, "route" nunca vai ser 5, ok.  :v:
    Coloquei até o 5 para prevenir, já li sobre isso mas resolvi colocar. Não postei o código completo porque não vi precisão e porque pretendia criar um modpack com esse script, mas não é problema, pois essa provavelmente não será a única vez que isso pode vir a acontecer e é melhor já saber o que fazer se isso acontecer novamente. Enfim, código completo do mod até agora abaixo:
    Código:

    {$CLEO}
    {$NOSOURCE}
    var
        4@ : float = 0.0
        5@ : float = 0.0
        6@ : float = 0.0
    end

    const
        map_icon_truck = 1@
        route = 2@
        zone_route = 3@v
        truckhandle = 7@
        markerhandle = 8@
    end
    :MAIN_LOOP
    wait 100
    02A7: map_icon_truck = create_icon_marker_and_sphere 51 at -1992.7532 -2387.7178 30.625
    :MAIN
    wait 0
    if
    00ED:   actor $PLAYER_ACTOR sphere 1 near_point -1992.7532 -2387.7178 radius 1.0 1.0 on_foot
    jf @MAIN
    0ACB: show_styled_text "Caminhoneiro" time 5000 style 1
    fade 0 2000
    while fading
        wait 0
    end
    0164: disable_marker map_icon_truck
    gosub @GenerateRandomRoute
    #DFT30.Load()
    repeat
    wait 0
    until #DFT30.Available()
    Car.Create(truckhandle, #DFT30, -1971.7992, -2391.283, 31.307)
    Car.Angle(truckhandle) = 44.4692
    fade 1 2000
    while fading
    wait 0
    end
    repeat
    wait 0
    0ACD: show_text_highpriority "O ~y~caminhao~w~ foi carregado, entre nele para prosseguir." time 100
    until Actor.InCar($PLAYER_ACTOR, truckhandle)
    0AD1: show_formatted_text_highpriority "Seu caminhao esta carregado com madeira, dirija ate ~y~%s~w~ para realizar a entrega." time 5000 zone_route
    0167: markerhandle = create_marker_at 4@ 5@ 6@ color 4 flag 2
    0AD1: show_formatted_text_highpriority "%f, %f, %f" time 40000 4@ 5@ 6@
    while 80EE:  not actor $PLAYER_ACTOR sphere 1 near_point 4@ 5@ radius 1.0 1.0 in_car
        wait 0
        if wasted_or_busted
        then
            goto @Failed    
        end    
        if not Actor.InCar($PLAYER_ACTOR, truckhandle)
        then
            0ACD: show_text_highpriority "Volte para seu caminhao!" time 900
        end        
    end

    :GenerateRandomRoute        //rotas de madeira a partir de angel pine
    0209: route = random_int_in_ranges 0 5
    if or
    route == 1
    route == 0
    then
        0005: 4@ = -489.3065
        0005: 5@ = -558.7218
        0005: 6@ = 25.5234
        0AD3: zone_route = format "%s" "Fallen Tree"
    end
    if route == 2
    then
        0005: 4@ = -1819.5201
        0005: 5@ = 2.1698
        0005: 6@ = 15.1172
        0AD3: zone_route = format "%s" "Doherty"
    end
    if route == 3
    then
        0005: 4@ = -1358.6582
        0005: 5@ = 2068.6035
        0005: 6@ = 52.4465
        0AD3: zone_route = format "%s" "Tierra Robada"
    end
    if or
    route == 4
    route == 5
    then
        0005: 4@ = -285.4091
        0005: 5@ = 2660.9941
        0005: 6@ = 62.6619
        0AD3: zone_route = format "%s" "Las Payasadas"
    end
    return

    :Failed
    ^ ^
    P.S: Declarei as variáveis locais 4@, 5@ e 6@ e coloquei 4@, 5@ e 6@ em mais alguns cantos em vez de "xlocal", "ylocal" e "zlocal" na tentativa de resolver o problema, inicialmente não era assim.


    ____________________
    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18604
    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: Coordenada sendo registrada de modo errado

    Mensagem por Fabio em Ter 28 Mar 2017, 17:48

    Código:
    zone_route = 3@v

    Isso ocupa a variável 3@, 4@, 5@ e 6@, totalizando 16 bytes de espaço para string.

    Código:
    "Fallen Tree" tem 11 bytes, portanto fica assim:

    3@ = Fall
    4@ = en T
    5@ = ree (e o último byte da variável 5@ será 0)
    6@ ficará intocada nesse caso


    ____________________

    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
    NathanT
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 41
    Reputação : 0
    Desde : 12/12/2015
    Idade : 14

    Re: Coordenada sendo registrada de modo errado

    Mensagem por NathanT em Ter 28 Mar 2017, 19:04

    @Fabio escreveu:
    Código:
    zone_route = 3@v

    Isso ocupa a variável 3@, 4@, 5@ e 6@, totalizando 16 bytes de espaço para string.

    Código:
    "Fallen Tree" tem 11 bytes, portanto fica assim:

    3@ = Fall
    4@ = en T
    5@ = ree (e o último byte da variável 5@ será 0)
    6@ ficará intocada nesse caso
    Nossa, é mesmo! Pensava que longstrings ocupavam 4 variáveis apenas teoricamente. Boiei. Valeu mesmo, Fabio!


    Última edição por NathanT em Ter 28 Mar 2017, 19:10, editado 1 vez(es)


    ____________________
    avatar
    Arthropod
    Mensagens Nível 4
    Mensagens Nível 4

    Mensagens : 272
    Reputação : 6
    Desde : 20/12/2016
    Localização : Unidade Federal do Leste
    Link : 127.0.0.1:80

    Re: Coordenada sendo registrada de modo errado

    Mensagem por Arthropod em Ter 28 Mar 2017, 19:08

    A ocupação do label "Failed" é garantir um crash mesmo? serious?
    avatar
    NathanT
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 41
    Reputação : 0
    Desde : 12/12/2015
    Idade : 14

    Re: Coordenada sendo registrada de modo errado

    Mensagem por NathanT em Ter 28 Mar 2017, 19:12

    @Arthropod escreveu:A ocupação do label "Failed" é garantir um crash mesmo? serious?
    Não, pois não terminei o resto quando vi esse problema '--


    ____________________
    avatar
    Arthropod
    Mensagens Nível 4
    Mensagens Nível 4

    Mensagens : 272
    Reputação : 6
    Desde : 20/12/2016
    Localização : Unidade Federal do Leste
    Link : 127.0.0.1:80

    Re: Coordenada sendo registrada de modo errado

    Mensagem por Arthropod em Ter 28 Mar 2017, 19:36

    Coloque os WAITs no término dos loop, e não no início; para evitar que o thread passe a vez de execução desnecessariamente.

    EXEMPLO:
    Código:
    while 80EE:  not actor $PLAYER_ACTOR sphere 1 near_point 4@ 5@ radius 1.0 1.0 in_car
        //wait 0 // yeld desnecessário, só atrasa realização da sua tarefa.
        if wasted_or_busted
        then
            goto @Failed    
        end    
        if not Actor.InCar($PLAYER_ACTOR, truckhandle)
        then
            0ACD: show_text_highpriority "Volte para seu caminhao!" time 900
        end        
        wait 0 // yeld depois de realizar sua tarefa.
    end


    ____________________
    Especificações de hardware:
    PC AMD FX Octa Core de 4.0GHz (OC), com GPU AMD Radeon de VRAM de 2GB, RAM de 8GB, HDD de 1TB, e fonte de alimentação ATX de 750W. Sequestrado por tempo indeterminado pelo TRIBUNAL DE JUSTIÇA DO ESTADO DO ESPÍRITO SANTO. É para tomar meus bens que pago impostos nessa aldeia chamada Brasil. YUNO

    avatar
    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18604
    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: Coordenada sendo registrada de modo errado

    Mensagem por Fabio em Ter 28 Mar 2017, 20:49

    @NathanT escreveu:
    @Fabio escreveu:
    Código:
    zone_route = 3@v

    Isso ocupa a variável 3@, 4@, 5@ e 6@, totalizando 16 bytes de espaço para string.

    Código:
    "Fallen Tree" tem 11 bytes, portanto fica assim:

    3@ = Fall
    4@ = en T
    5@ = ree (e o último byte da variável 5@ será 0)
    6@ ficará intocada nesse caso
    Nossa, é mesmo! Pensava que longstrings ocupavam 4 variáveis apenas teoricamente. Boiei. Valeu mesmo, Fabio!

    De nada. :)


    ____________________

    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
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21596
    Reputação : 631
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: Coordenada sendo registrada de modo errado

    Mensagem por Junior_Djjr em Ter 28 Mar 2017, 23:02

    NathanT, por que você não estuda GTA3script ao invés de Sanny Builder?


    ____________________
    avatar
    Rafael_Antunes
    Mensagens Nível 5
    Mensagens Nível 5

    Mensagens : 965
    Reputação : 10
    Desde : 16/11/2016
    Localização : Seattle-Washington
    Link : http://dyomworldbrasil.forumeiros.com/

    Re: Coordenada sendo registrada de modo errado

    Mensagem por Rafael_Antunes em Ter 28 Mar 2017, 23:19

    @Junior_Djjr escreveu:NathanT, por que você não estuda GTA3script ao invés de Sanny Builder?

    Ele tava aprendendo,dai do nada ele parou eu acho.
    (tenho ele no Face)


    ____________________

    avatar
    NathanT
    Mensagens Nível 1
    Mensagens Nível 1

    Mensagens : 41
    Reputação : 0
    Desde : 12/12/2015
    Idade : 14

    Re: Coordenada sendo registrada de modo errado

    Mensagem por NathanT em Qua 29 Mar 2017, 14:25

    @Arthropod escreveu:Coloque os WAITs no término dos loop, e não no início; para evitar que o thread passe a vez de execução desnecessariamente.

    EXEMPLO:
    Código:
    while 80EE:  not actor $PLAYER_ACTOR sphere 1 near_point 4@ 5@ radius 1.0 1.0 in_car
        //wait 0 // yeld desnecessário, só atrasa realização da sua tarefa.
        if wasted_or_busted
        then
            goto @Failed    
        end    
        if not Actor.InCar($PLAYER_ACTOR, truckhandle)
        then
            0ACD: show_text_highpriority "Volte para seu caminhao!" time 900
        end        
        wait 0 // yeld depois de realizar sua tarefa.
    end
    Valeu mano, com sua dica posso aprimorar o código de meu scripts. Aprecio sua dica!
    @Junior_Djjr escreveu:NathanT, por que você não estuda GTA3script ao invés de Sanny Builder?
    Já li todos os atuais tutoriais sobre GTA3script daqui, após isso resolvi também estudar sobre o Sanny para me ajudar também no aprendizado de GTA3script, como por exemplo, lendo sobre Sanny eu aprendi sobre thread memory e com um post do israel eu vi como usar isso em gta3script likeasir
    Também, o meu Visual Studio Code começou a dar problema, algo que me motivou mais a usar Sanny algumas vezes. Mas não deixei GTA3script para trás não.


    ____________________
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21596
    Reputação : 631
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: Coordenada sendo registrada de modo errado

    Mensagem por Junior_Djjr em Qui 30 Mar 2017, 04:35

    @NathanT escreveu:Já li todos os atuais tutoriais sobre GTA3script daqui, após isso resolvi também estudar sobre o Sanny para me ajudar também no aprendizado de GTA3script, como por exemplo, lendo sobre Sanny eu aprendi sobre thread memory e com um post do israel eu vi como usar isso em gta3script likeasir
    É, isso é bom.


    ____________________

    Conteúdo patrocinado

    Re: Coordenada sendo registrada de modo errado

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui 22 Jun 2017, 08:52