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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

[Resolvido]Cannot compare arguments

em Ter 16 Ago 2011, 16:55
Aew galera!!!

Esse "Cannot compare arguments" tá me encomodando bastante no meu jogo, estou usando esse code no CREATE do obj. "draw":


Código:
xx = 160
yy = 32
xslot=10
yslot=10

inv=ds_grid_create(xslot,yslot)

file_open_read("inv.txt")
ds_grid_read(inv,file_read_string())
file_close()

for (i = 0; i < xslot; i += 1)
{
for (j = 0; j < yslot; j += 1)
{
if (ds_grid_get(draw.inv,j,i) != 0)
  {instance_create(j*32,i*32,ds_grid_get(draw.inv,j,i))
  }}}

E no STEP dos outros obj.:

Código:
if position_meeting(mouse_x,mouse_y,self) and mouse_check_button_pressed(mb_left)
    {ds_grid_set(draw.inv,x/32,y/32,0) seguir = true}

if seguir = true
{x = mouse_x -16
y = mouse_y -16}

if mouse_check_button_released(mb_left) and seguir = true
{
seguir = false
move_snap(32,32)

if ds_grid_get(draw.inv,x/32,y/32) = 0
{ds_grid_set(draw.inv,x/32,y/32,object_get_name(object_index))}
     
else

{sair = false;
for (i = 0; i < 10; i += 1)
{
  if (sair) break;
for (j = 0; j < 10; j += 1)
{
  if (sair) break;
    if (ds_grid_get(draw.inv,j,i) = 0)
  {
      ds_grid_set(draw.inv,j,i,object_get_name(object_index))
      x = j*32+draw.xx
      y = i*32+draw.yy
      sair = true;
  }}}}}

if mouse_check_button_pressed(mb_right) and position_meeting(mouse_x,mouse_y,self)
{scr_item_mouse_rightp()}

Ai da esse erro:

Código:

___________________________________________
ERROR in
action number 1
of Create Event
for object draw:

Error in code at line 16:
  if (ds_grid_get(draw.inv,j,i) != 0)
                                    ^
at position 35: Cannot compare arguments.
Me ajudem porfavor porque tá complicado arrumar isso e já está atrasando demais meu game. Agradeço desde já!!! ;)


Última edição por ufrarion em Dom 21 Ago 2011, 01:58, editado 2 vez(es)
avatar
Data de inscrição : 09/07/2011
Número de Mensagens : 646
Insígnias de JAM :

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

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

Re: [Resolvido]Cannot compare arguments

em Ter 16 Ago 2011, 17:34
Verifica se não são os parenteses ou quantidade de vírgulas.
E depois dessa linha tem que ter as chaves com comandos dentro.
Exemplo...
Código:
{x=x}
avatar
Ranking : Nota A
Notas recebidas : A+A
Data de inscrição : 07/12/2010
Número de Mensagens : 619
Insígnias de JAM :

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

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

Re: [Resolvido]Cannot compare arguments

em Ter 16 Ago 2011, 17:43
Esse erro ocorreu uma vez quando tentei checar uma variável numérica com valores em string.

Tente usar assim:
Código:
if (ds_grid_get(draw.inv,j,i) != "")
Assim, ao invés de checar numericamente, checará em string.

Espero ter ajudado!
flw
avatar
Data de inscrição : 31/08/2010
Número de Mensagens : 630
Insígnias de JAM :

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

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

Re: [Resolvido]Cannot compare arguments

em Ter 16 Ago 2011, 17:43
Isso acontece porque o 0(zero) tem que estar assim ("0") sem o parenteses.
O que foi o erro: para o gm , você está dizendo que o ds_grid_get(draw.inv,j,i) é falso mais na verdade ele e diferente de 0(zero).

coloque "0"
avatar
Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: [Resolvido]Cannot compare arguments

em Ter 16 Ago 2011, 19:01
Super Maker

Não entendi o que você quis dizer...

joao vitor jv e Pit Bull

botei o "0" no lugar, mas continua dando o mesmo erro, eu uso esse code para pegar um valor numa ds_grid e cria-lo. estou usando esse code aqui para botar os valores na ds_grid:


Código:
ds_grid_set(draw.inv,2,0,"object1")
ds_grid_set(draw.inv,3,0,"object16")
avatar
Ranking : Nota A
Notas recebidas : A+A
Data de inscrição : 20/03/2010
Número de Mensagens : 1134
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuáriohttps://www.facebook.com/seito.washiro.7

Re: [Resolvido]Cannot compare arguments

em Ter 16 Ago 2011, 19:43
esse tipo de erro ocorre, quando se tenta compara uma string com um valor real

então tente colocar isso
Código:

inv=ds_grid_create(xslot,yslot)

file_open_read("inv.txt")
ds_grid_read(inv,file_read_string())
file_close()

for (i = 0; i < xslot; i += 1)
{
for (j = 0; j < yslot; j += 1)
{
if  real(ds_grid_get(inv,j,i) != 0)
  {instance_create(j*32,i*32,ds_grid_get(draw.inv,j,i))
  }}}
avatar
Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: [Resolvido]Cannot compare arguments

em Ter 16 Ago 2011, 21:14
Jiraya

Cara, continua dando o mesmo erro :/
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]Cannot compare arguments

em Ter 16 Ago 2011, 22:00
O Jiraya colocou confundiu o parêntese. Tente substituir:
if real(ds_grid_get(inv,j,i) != 0)
por
if real(ds_grid_get(inv,j,i)) != 0

Edit:
Ehm... Que função é "file_read_string()"? Não achei no manual. Talvez fosse "file_text_read_string()"?
avatar
Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: [Resolvido]Cannot compare arguments

em Ter 16 Ago 2011, 22:12
saim

Botei do jeito que você escreveu mas deu esse erro:


Código:

___________________________________________
ERROR in
action number 1
of Create Event
for object draw:

Error in function real().
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]Cannot compare arguments

em Ter 16 Ago 2011, 22:38
Ah, agora que vi o que você está colocando na ds_grid! O que você está colocando são realmente strings. São só aquelas duas linhas, né?
Tente tirar os parênteses (gravando as ids dos objetos, ao invés dos nomes) ou substituir a linha mencionada por:
Código:
if (is_real(ds_grid_get(draw.inv,j,i))
avatar
Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: [Resolvido]Cannot compare arguments

em Ter 16 Ago 2011, 23:08
saim

Esse code não verfica se na variável é diferente de 0, e gravar as IDs não iria funcionar porque os objetos não foi previamente criados e ai não teria ID (eu acho)
avatar
Data de inscrição : 31/08/2010
Número de Mensagens : 630
Insígnias de JAM :

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

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

Re: [Resolvido]Cannot compare arguments

em Ter 16 Ago 2011, 23:15
Tenta isso:(outra tentativa)
Código:
if !(ds_grid_get(draw.inv,j,i)){}

Se não funcionar esse script que eu fiz substitui o ds_grid_get por ds_grid e arruma ela.

O que eu entendi do seu erro foi que você quer saber se ele existe, se ele não existir você cria algo não é?

Mais agora o que eu não entendi foi o instance_create , está totalmente errado porque ele serve para criar um objeto e não criar uma ds_list.

Edit:Uma dica é usar variáveis em vez de ds_list por ser muito mais fácil de pegar,mudar e deletar valores.
Crie scripts que se chamem add_inventario e del_inventario e neles coloquem os códigos que mudam as variáveis.
avatar
Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: [Resolvido]Cannot compare arguments

em Qua 17 Ago 2011, 02:12
Pit Bull

Esse code não verifica se tem um 0 na ds_grid, porque a ds_grid está criada todos os espaços com zeros (valor padrão), o instance_create está correto porque ele é para criar o objeto que está contido na ds_grid não para criar outra coisa.
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]Cannot compare arguments

em Qua 17 Ago 2011, 10:06
Se o valor a que você se refere for o nome do objeto, ele terá, sim, uma id. TUDO tem ids - sprites, sons, alarms, objetos e instâncias. A id da instância é diferente da do objeto. Você pode escrever códigos como "instance_create(x, y, 0)", desde que não delete o primeiro objeto gerado ao criar o jogo (já até tive alguns bugs com isso).

Seu problema é que parte da sua grid está com valores de string e a outra parte, com o valor (real) 0, portanto ao passar pela grid toda, as comparações jamais atenderão aos dois critérios - a menos que você cheque por algo como "is_real()" ou "is_string()".
Data de inscrição : 06/10/2010
Número de Mensagens : 84
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: [Resolvido]Cannot compare arguments

em Qua 17 Ago 2011, 13:39
faz isso
logo apos criar a grid coloca
Código:

ds_grid_clear(draw.inv,"");

e na parte de comparar

Código:

if (ds_grid_get(draw.inv,j,i) != "")
avatar
Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: [Resolvido]Cannot compare arguments

em Qua 17 Ago 2011, 13:54
diego333

Continuou dando o mesmo erro :/

Tópico

Galera vou postar a engine, ai fica mais fácil para arrumar antes que o tópico tenha 10 páginas Smile


Link <------------

Obs: A engine tá meia bagunçada as cordenadas ta desreguladas então pode acontecer algumas coisas esquisitas ;)
Data de inscrição : 06/10/2010
Número de Mensagens : 84
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: [Resolvido]Cannot compare arguments

em Qua 17 Ago 2011, 14:22
pq vc não tenta , ao invés de guardar o nome do objeto , guardar o id do objeto ?
avatar
Data de inscrição : 04/08/2011
Número de Mensagens : 75
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: [Resolvido]Cannot compare arguments

em Qua 17 Ago 2011, 14:46
tenta isso
Código:
if string(ds_grid_get(draw.inv,j,i)) != string("0")
avatar
Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: [Resolvido]Cannot compare arguments

em Qua 17 Ago 2011, 15:17
Galera, tentem me ajudar com a engine que está no meu penúltimo post meu, porque já tentei de tudo que é jeito e nada funciona, as vezes a primeira comparação funciona mas depois não, por isso tentem com a minha engine talvez facilite a resolução do problema. Smile
avatar
Ranking : Nota A
Notas recebidas : A+A
Data de inscrição : 20/03/2010
Número de Mensagens : 1134
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuáriohttps://www.facebook.com/seito.washiro.7

Re: [Resolvido]Cannot compare arguments

em Qua 17 Ago 2011, 15:21
envie o arquivo inv.txt, também, se não fica complicado simular o que esta acontecendo no seu computador.
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