Qual o problema ?

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

Resolvido Qual o problema ?

Mensagem por Zero. em Qua 27 Jun 2012, 17:59

O obj_bixo_select ele é criado 16 pixeis a mais que o anterior quando o player colide com o obj_create.
No create dele está :
Código:

hp=100
eng=10
exaust=false

No step :

exe 1
Código:

if place_meeting(x,y,obj_select1)
{global.sclt[1]=id}

if place_meeting(x,y,obj_select2)
{global.sclt[2]=id}

if place_meeting(x,y,obj_select3)
{global.sclt[3]=id}

if place_meeting(x,y,obj_select4)
{global.sclt[4]=id}

if place_meeting(x,y,obj_select5)
{global.sclt[5]=id}

exe 2
Código:

if instance_exists(proteus) // está é a criatura que será criada a partir das variaveis do obj_bixo_select
{
if global.monster.destroy=id // id em que se está o obj_bixo_select ( global.sclt[1~5] )
{exaust=proteus.exaust
hp=proteus.hp
eng=proteus.eng}
}

Entaum ao mudar um valor de um obj_bixo_select e depois criar outro, todos os obj_bixo_select ficam com o valor das variáveis iguais ao que foi criado (ou seja volta tudo ao início), sendo que as varáveis são locais, ainda sim isso acontece.
Não conssigo ver o erro *0* .

Obs : pra criar uma nova obj_bixo_select (ou para o player poder colider com o obj_create) o proteus não pode estar na room.

THX

EDIT ---------------------------------------------------------------------------------------------------------------

Observei que muda não quando é criado mas , sempre !
quando um novo é criado todos ficam com as variaveis iguais a este, e quando mudo uma variavel em um, a mesma variavel é alterada em todos da msm forma. Ou seja o problema ésta no step eu acho.


Última edição por FlyAway em Sex 29 Jun 2012, 11:24, editado 3 vez(es)

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Qual o problema ?

Mensagem por Eudes - Hyo em Qua 27 Jun 2012, 18:30

eae Fly. não consegui entender muito bem, mas..

se todos as instancias do mesmo objeto ficam com as variáveis iguais quando vc muda a variável de uma delas, vc pode tentar usar o ' self. ' antes do nome da variável.
Mas isso se o obj que estiver fazendo essa alteração for o próprio 'obj_bixo_select' né.
Não sei bem se é isso que ocorre.

Eudes - Hyo

Ranking : Nota B
Número de Mensagens : 513
Idade : 32
Data de inscrição : 02/06/2009
Notas recebidas : E + B+B
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Qual o problema ?

Mensagem por Zero. em Qua 27 Jun 2012, 19:45

O self não funcionou.
Isso é estranho acontecer porque os objs possuem variaveis locais e suas ids são diferentes =/ .

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Qual o problema ?

Mensagem por Thiago_o_programador em Qua 27 Jun 2012, 19:58

tente colocar a colisão no outro objeto, (o q a variavel vai alterar e que possui varias instancias)

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Resolvido Re: Qual o problema ?

Mensagem por Zero. em Qua 27 Jun 2012, 20:03

Num pode. porque esta obj ela faz parte da HUD e não é um objeto da room como o char e o inimigo. E isso não alteraria em nada ao meu ver.

Eu dei um edit no post, é uma informação que vale ressaltar.



Última edição por FlyAway em Qua 27 Jun 2012, 20:14, editado 2 vez(es)

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Qual o problema ?

Mensagem por Thiago_o_programador em Qua 27 Jun 2012, 20:12

tente criar uma variavel que segure o valor inicial logo no create, e depois trabalhe só com ela, pois tera os valores iniciais... (Se for o q eu to pensando, ainda não entendi bem...)

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Resolvido Re: Qual o problema ?

Mensagem por Zero. em Qua 27 Jun 2012, 20:15

Descobri onde está o problema !
Está na hora de criar o proteus
Olha no obj_create_char // obj que cria o proteus
Create:

Código:

if obj_selected.select=1 // esses obj_selected.select é pra saber qual está selecionado.
{with instance_create(x,y-4,global.summon)
{destroy=global.sclt[1]
hp=global.sclt[1].hp
eng=global.sclt[1].eng
exaust=global.sclt[1].exaust}}

if obj_selected.select=2
{with instance_create(x,y-4,global.summon)
{destroy=global.sclt[2]
hp=global.sclt[2].hp
eng=global.sclt[2].eng
exaust=global.sclt[2].exaust}}

if obj_selected.select=3
{with instance_create(x,y-4,global.summon)
{destroy=global.sclt[3]
hp=global.sclt[3].hp
eng=global.sclt[3].eng
exaust=global.sclt[3].exaust}}

if obj_selected.select=4
{with instance_create(x,y-4,global.summon)
{destroy=global.sclt[4]
hp=global.sclt[4].hp
eng=global.sclt[4].eng
exaust=global.sclt[4].exaust}}

if obj_selected.select=5
{with instance_create(x,y-4,global.summon)
{destroy=global.sclt[5]
hp=global.sclt[5].hp
eng=global.sclt[5].eng
exaust=global.sclt[5].exaust}}

Ai ele vai criar o global.summon (no caso o proteus) e se o obj_bixo_select que estiver selecianado for o 1~5 ele vai receber as variaveis que estavam salvas no próprio obj_bixo_select. As variaveis hp,eng e exaust do obj_bixo_select mudam e as outras não mudam (elas ficam sim com valores diferentes), porém o obj_create_char está criando o proteus com as variaveis do ultimo obj_bixo_select que foi alterado, oque não pra acontecer. E agora onde está este erro na criação ?

EDIT ------------------------------------------------------------------------------------

Descobri mais uma coisa, o problema está só na criação do 1º.
Quando eu mudo algo no 1º ele ao invés de mudar as suas váriaveis muda as variáveis do ultimo que foi criado. e também quando crio o proteus apartir do 1º ele não cria a partir do 1º e sim do ultimo que foi criado.
OBS : isso só acontece com o 1º . O resto ta blz Happy , tão salvando suas variaveis normalmente.
OBS2 : Pra checar em qual lugar está, há 5 objs diferentes em sequencia de 16 em 16 pixels eles tem o nome de obj_select1~5. Todos os obj_select de 2~5 são parents do 1º.

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Qual o problema ?

Mensagem por saim em Qui 28 Jun 2012, 11:13

Cara, eu devo estar com muito sono, ou então você ainda não conseguiu descrever direito o que está acontecendo.
Faz o seguinte, como os códigos já estão aí, faça uma descrição de como será o jogo. Como acontecem as colisões, o que é cada objeto, essas coisas. Como se fosse uma descrição pro jogador, mas com os nomes dos objetos. Ah, e não consegui entender o que são exe1 e exe2; são exemplos de código ou dois códigos pra usar no mesmo step?

Ah, e esse último código pode ser substituído por
Código:
with instance_create(x,y-4,global.summon)
{destroy=global.sclt[obj_selected.select]
hp=global.sclt[obj_selected.select].hp
eng=global.sclt[obj_selected.select].eng
exaust=global.sclt[obj_selected.select].exaust}

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: Qual o problema ?

Mensagem por Zero. em Qui 28 Jun 2012, 11:27

Acontece assim :

Sao criados 5 objs em sequência de 16 em 16 pixels (fazem parte da hud tb) os seus nomes são obj_select1 ao 5 (obj_select1 , obj_select2 ... obj_select5)
Entaum quando eu capturo um bixo (no caso proteus) é criado um obj_bixo_select nas cordenadas do obj_selected (esse obj_select é um crossair pra saber qual slot (qual obj_select) está selecionado) sendo assim quando eu invocar a criatura que eu capturei (proteus) ele vai ser criado com as variaveis hp,eng e exaust do obj_bixo_select (o msm vai guardar as variaveis do proteus pra quando eu voltar ele de pois chama-lo novamente ele venha com o hp,eng,exaust igual a como ele voltou) entaum enquanto a variavel destroy do proteus for igual a do obj_bixo_select ele vai está igualando suas variaveis a do bixo em campo, e quando eu volta-lo as variaveis no obj_bixo_select continuaram lá.
O problema que ocorre é que quando eu capturo um proteus no slot1 e depois capturo outro em qualquer slot , o obj_create_char (oque cria o proteus) ele cria o proteus que está no slot1 igual ao do ultimo slot e as variaveis que mudam não são a do slot1 mas sim do ultimo slot que foi criado. Ou seja quando um obj_bixo_select está no slot1 é como se ele estivesse no ultimo slot em que o obj_bixo_select foi criado (ou seja outro que eu capturei) entaum o slot1 está igual ao ultimo slot onde há um obj_bixo_select.

OBS : Todos os obj_select de 2 a 5 são parents do obj_select1

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Qual o problema ?

Mensagem por Conteúdo patrocinado Hoje à(s) 22:13


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