Conectar-se
Quem está conectado
20 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 20 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 14

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://inprovise.blogspot.com/

[Resolvido] IDs somem e dá erro

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)
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 30/07/2011
Número de Mensagens : 928
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://luizpontes.tk/

Re: [Resolvido] IDs somem e dá erro

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;}
}
avatar
Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 1
Reputação : 80

Prêmios
   : 2
   : 2
   : 1
Ver perfil do usuáriohttp://guitarmester.no.comunidades.net/index.php?pagina=19362978

Re: [Resolvido] IDs somem e dá erro

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;}
}

}
avatar
Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 14

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://inprovise.blogspot.com/

Re: [Resolvido] IDs somem e dá erro

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)
avatar
Ranking : Nota B
Notas recebidas : D+A+B
Data de inscrição : 16/01/2012
Número de Mensagens : 787
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://need90games.blogspot.com.br

Re: [Resolvido] IDs somem e dá erro

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?
avatar
Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 14

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://inprovise.blogspot.com/

Re: [Resolvido] IDs somem e dá erro

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
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Resolvido] IDs somem e dá erro

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;
         }
      }
   }
avatar
Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 14

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://inprovise.blogspot.com/

Re: [Resolvido] IDs somem e dá erro

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.
avatar
Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 1
Reputação : 80

Prêmios
   : 2
   : 2
   : 1
Ver perfil do usuáriohttp://guitarmester.no.comunidades.net/index.php?pagina=19362978

Re: [Resolvido] IDs somem e dá erro

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.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Resolvido] IDs somem e dá erro

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.
avatar
Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 1
Reputação : 80

Prêmios
   : 2
   : 2
   : 1
Ver perfil do usuáriohttp://guitarmester.no.comunidades.net/index.php?pagina=19362978

Re: [Resolvido] IDs somem e dá erro

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).
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [Resolvido] IDs somem e dá erro

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)
avatar
Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 14

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://inprovise.blogspot.com/

Re: [Resolvido] IDs somem e dá erro

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!!!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum