Compartilhe
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 47
Reputação : 0
Desde : 12/12/2015
Ver perfil do usuário

Coordenada sendo registrada de modo errado

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.

______________________________
American State Roleplay
Conheça meu projeto para o SA-MP clicando na imagem acima ^ ^
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18911
Reputação : 346
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: Coordenada sendo registrada de modo errado

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
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 47
Reputação : 0
Desde : 12/12/2015
Ver perfil do usuário

Re: Coordenada sendo registrada de modo errado

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.

______________________________
American State Roleplay
Conheça meu projeto para o SA-MP clicando na imagem acima ^ ^
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Mensagens : 713
Reputação : 115
Desde : 22/09/2015
Ver perfil do usuário

Re: Coordenada sendo registrada de modo errado

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
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 47
Reputação : 0
Desde : 12/12/2015
Ver perfil do usuário

Re: Coordenada sendo registrada de modo errado

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.

______________________________
American State Roleplay
Conheça meu projeto para o SA-MP clicando na imagem acima ^ ^
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18911
Reputação : 346
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com
  • Reputação da mensagem: 100% (1 votos)

Re: Coordenada sendo registrada de modo errado

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
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 47
Reputação : 0
Desde : 12/12/2015
Ver perfil do usuário

Re: Coordenada sendo registrada de modo errado

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)

______________________________
American State Roleplay
Conheça meu projeto para o SA-MP clicando na imagem acima ^ ^
avatar
Mensagens Nível 4
Mensagens Nível 4
Título : Veryzon, agora em morte.
Mensagens : 273
Reputação : 6
Desde : 20/12/2016
Localização : Unidade Federal do Leste
Link : 127.0.0.1:80
Ver perfil do usuário

Re: Coordenada sendo registrada de modo errado

em Ter 28 Mar 2017, 19:08
A ocupação do label "Failed" é garantir um crash mesmo? serious?
avatar
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 47
Reputação : 0
Desde : 12/12/2015
Ver perfil do usuário

Re: Coordenada sendo registrada de modo errado

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 '--

______________________________
American State Roleplay
Conheça meu projeto para o SA-MP clicando na imagem acima ^ ^
avatar
Mensagens Nível 4
Mensagens Nível 4
Título : Veryzon, agora em morte.
Mensagens : 273
Reputação : 6
Desde : 20/12/2016
Localização : Unidade Federal do Leste
Link : 127.0.0.1:80
Ver perfil do usuário

Re: Coordenada sendo registrada de modo errado

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

______________________________
avatar
Programador - Avançado
Programador - Avançado
Mensagens : 18911
Reputação : 346
Desde : 04/05/2012
Idade : 20
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com

Re: Coordenada sendo registrada de modo errado

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
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21905
Reputação : 678
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Coordenada sendo registrada de modo errado

em Ter 28 Mar 2017, 23:02
NathanT, por que você não estuda GTA3script ao invés de Sanny Builder?

______________________________

avatar
Mensagens Nível 6
Mensagens Nível 6
Título : O mininu viciado em Cautir Istraiqui.
Mensagens : 1267
Reputação : 16
Desde : 16/11/2016
Localização : Seattle-Washington
Link : http://dyomworldbrasil.forumeiros.com/
Ver perfil do usuário

Re: Coordenada sendo registrada de modo errado

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
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 47
Reputação : 0
Desde : 12/12/2015
Ver perfil do usuário

Re: Coordenada sendo registrada de modo errado

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.

______________________________
American State Roleplay
Conheça meu projeto para o SA-MP clicando na imagem acima ^ ^
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21905
Reputação : 678
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Coordenada sendo registrada de modo errado

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

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum