[Resolvido] IDs somem e dá erro

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido [Resolvido] IDs somem e dá erro

Mensagem por moisesBR em Ter 25 Set 2012, 11:50

Queria resolver um problema constante... eu faço uso de IDs, para poder indicar a instância mais proxima,
tipo eu declaro no create:
ID_obj=instance_nearest(x,y,obj)

Mas no steep, quando essas IDs somem da room(destruidas), costuma dar o seguite erro:

Error in code at line...
image_angle = point_direction(x,y,ID_iobj.x,ID_obj.y)//m
^
at position... Unknown variable x

No meu caso, um game de guerra que to preparando dentre outros que tem essa função... o erro exato:
create:
Código:
//declarando o alvo
ID_inimigo=instance_nearest(x,y,obj_soldado_am)
steep:
Código:
ID_inimigo=instance_nearest(x,y,obj_soldado_am)


image_angle = point_direction(x,y,ID_inimigo.x,ID_inimigo.y)//m
ID_inimigo=instance_nearest(x,y,obj_soldado_am)

timer+=round(5) if timer=10*room_speed
{
timer=0 with (instance_create(x+10, y, obj_tiro2)){
image_angle = other . image_angle;
direction = image_angle+random(10);speed = 10;}
}
O erro:
___________________________________________
ERROR in
action number 1
of Step Event
for object obj_soldado_vd:

Error in code at line 6:
image_angle = point_direction(x,y,ID_inimigo.x,ID_inimigo.y)//m
^
at position 47: Unknown variable x


Última edição por moisesBR em Dom 30 Set 2012, 13:37, editado 1 vez(es)

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por luiz_eldorado em Ter 25 Set 2012, 12:07

É só colocar uma condição no código, assim:
Código:
ID_inimigo=instance_nearest(x,y,obj_soldado_am)

if ID_inimigo!=noone {
image_angle = point_direction(x,y,ID_inimigo.x,ID_inimigo.y)//m
}
ID_inimigo=instance_nearest(x,y,obj_soldado_am)

timer+=round(5) if timer=10*room_speed
{
timer=0 with (instance_create(x+10, y, obj_tiro2)){
image_angle = other . image_angle;
direction = image_angle+random(10);speed = 10;}
}

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 18
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por theguitarmester em Ter 25 Set 2012, 12:11

um Nego véio Como Você com esses Erros! geek


Coloque este Code, é seu code com a adição de se caso Existe as Instâncias obj_soldado_am executar Code.

Código:
ID_inimigo=instance_nearest(x,y,obj_soldado_am)

if instance_exists(obj_soldado_am) //Parte que Adicionei
{
image_angle = point_direction(x,y,ID_inimigo.x,ID_inimigo.y)//m
ID_inimigo=instance_nearest(x,y,obj_soldado_am)

timer+=round(5) if timer=10*room_speed
{
timer=0 with (instance_create(x+10, y, obj_tiro2)){
image_angle = other . image_angle;
direction = image_angle+random(10);speed = 10;}
}

}

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por moisesBR em Ter 25 Set 2012, 12:34

theguitarmester e Eldorado, Funcionou, e quase deu certo...

podem me explicar onde eu estou errando?

um Nego véio Como Você com esses Erros!
.......
kkkkkkkkkkkkkkkkkk

aff erro persiste....:
ERROR in
action number 1
of Step Event
for object obj_soldado_vd:

Error in code at line 6:
image_angle = point_direction(x,y,ID_inimigo.x,ID_inimigo.y)
^
at position 47: Unknown variable x

vejam por si mesmos: http://dl.dropbox.com/u/77569588/meus%20projetos/projeto%20guerra.gmk


Última edição por moisesBR em Ter 25 Set 2012, 12:50, editado 1 vez(es)

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por Need 90 em Ter 25 Set 2012, 12:45

O código ainda está errado :
Código:


if instance_exists(obj_soldado_am) //Parte que Adicionei
{
ID_inimigo=instance_nearest(x,y,obj_soldado_am)
image_angle = point_direction(x,y,ID_inimigo.x,ID_inimigo.y)//m
ID_inimigo=instance_nearest(x,y,obj_soldado_am)

timer+=round(5) if timer=10*room_speed
{
timer=0 with (instance_create(x+10, y, obj_tiro2)){
image_angle = other . image_angle;
direction = image_angle+random(10);speed = 10;}
}

Do que adianta pegar o id do inimigo e depois checar se ele existe?

Need 90

Ranking : Nota B
Número de Mensagens : 787
Data de inscrição : 16/01/2012
Notas recebidas : D+A+B
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://need90games.blogspot.com.br

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por moisesBR em Ter 25 Set 2012, 12:52

percebi... mas ainda não sei resolver... aff

dê uma olhada:
http://dl.dropbox.com/u/77569588/meus%20projetos/projeto%20guerra.gmk

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por saim em Ter 25 Set 2012, 13:31

moisesBR escreveu:podem me explicar onde eu estou errando?
O seu código permite buscar uma id de um objeto que não está na room. Não é o create event (que é dispensável), é o step mesmo. Se o objeto não está na room, a função vai retornar "noone", que não possui as corrdenadas x e y.
Ah, "step" é com um "e" só. Escrever "steep" me passa uma impressão estranha, porque quer dizer "íngreme", o que não faz sentido nenhum.

O código do Need 90 está ok, só falta fechar um colchete no final. Mas tem alguns comandos desnecessários, herdados do código original. Abaixo, uma versão um pouco mais limpa, com os comentários onde foi feita a limpeza:
Código:
if instance_exists(obj_soldado_am) { // só faz alguma coisa se houver inimigo na tela
   var ID_inimigo; // você só precisa da variável nesse código, então pode fazê-lo uma "var"
   ID_inimigo = instance_nearest(x, y, obj_soldado_am);
   image_angle = point_direction(x, y, ID_inimigo . x, ID_inimigo . y);
   // ID_inimigo = instance_nearest(x, y, obj_soldado_am) -->pode cortar essa linha, ela só repete o que já foi feito pouco acima.

   timer += 5; // se fosse uma variável, valeria a pena arredondar, mas "5" é uma constante
   if (timer = 10 * room_speed) {
      timer = 0;
      with (instance_create(x + 10, y, obj_tiro2)) {
         var ang;
         ang = other . image_angle + random(10); // o mesmo valor a ser usado pra direção e image_angle
         image_angle = ang;
         direction = ang;
         speed = 10;
         }
      }
   }

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por moisesBR em Ter 25 Set 2012, 17:54

Obrigado! Vou precisar disso nos meus projetos, tava usando à risca, sem compreender...

Resolvido!

Quando tiver algo concreto, eu posto.

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por theguitarmester em Ter 25 Set 2012, 18:31

Saim escreveu:O código do Need 90 está ok,
Código de Need??? Fui eu Quem Alterei os Códigos(TheGuitarMester)!

Do que adianta pegar o id do inimigo e depois checar se ele existe?
você não pensou o Seguinte: e se caso não Existe o Objeto Procurado, ele irá voltar uma ID Inexistente(acho que é 0 ou -4), e daí você irá usa-la para pegar variaveis de uma Instância Inexistente, como? Entendeu? Eu Fiz o Mesmo Erro que o MoisesBR fez, não demorei muito para resolver, apenas adicionei algo como isto: IDpegada>0 Código Prossegue.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por saim em Qua 26 Set 2012, 10:25

theguitarmester escreveu:
Saim escreveu:O código do Need 90 está ok,
Código de Need??? Fui eu Quem Alterei os Códigos(TheGuitarMester)!
Eu achei a alteração do Need 90 melhor: primeiro verifica se vale a pena pegar a ID, depois pega a ID. Ele levou em conta a possibilidade de não ter a instância na room, sim.
Se eliminar a primeira linha do seu e alterar a ordem das primeiras linhas dentro do "if", e eliminar um dos colchetes (aquele entre "timer+=round(5)" e "timer=0") eu digo que seu código também é bom.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por theguitarmester em Qua 26 Set 2012, 10:58

Vendo de cima, pensei que o Código do Need era Igual ao Meu, e que ele estava só falando sobre ele: "Do que adianta pegar o id do inimigo e depois checar se ele existe?", pensei que ele estivesse falandop do meu porque ele copiou do meu(que era a cópia do original), até tem ainda o "//parte que adicionei", mas vejo que são diferentes, Desculpe.

Se eliminar a primeira linha do seu e alterar a ordem das primeiras linhas dentro do "if", e eliminar um dos colchetes (aquele entre "timer+=round(5)" e "timer=0") eu digo que seu código também é bom.
você quer dizer 'puxar a 1°linha de code para baixo do instance_exists, e o Restodo Code Deixei Igual ao Original, afinal, rlr queria apenas a solução, e não que Melhorásse a organização, e retirasse o Impreciso(mas poderia ter feito).

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por PedroX em Qua 26 Set 2012, 13:19

Se todo o código depender da existência da instância, então você pode parar logo de cara:

Código:
ID_inimigo = instance_nearest(x, y, inimigo);
if (ID_inimigo==noone) exit; //para por aqui mesmo

Obs: Dê uma olhada nos códigos do saim, porque o seu código está mesmo bagunçado.

Até mais!


Última edição por Pedrø em Dom 30 Set 2012, 17:06, editado 1 vez(es)

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por moisesBR em Dom 30 Set 2012, 13:19

Obrigado! etá arresolvídio! Realmente o do saim tá 100%, e é ele que estou usando ajudou muito os comentários!

Testei o de todos, mas o que não deu nenhum erro foi o do saim mesmo, sabem como sou, testei de todos modos lembráveis no momento.

estou falando do saim, mas sem desmerecer os outros pois, tamos juntos e se o sayadin não aparecesse (kkkkk), nois ia quebrar bem mais a cuca! E... dim dia nois conseguia! será que seria já de cabelos brancos? kkkkkk

@Pedro: boa ideia!
Valeu!!!

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] IDs somem e dá erro

Mensagem por Conteúdo patrocinado Hoje à(s) 07:43


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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