Conectar-se
Quem está conectado
24 usuários online :: 2 usuários cadastrados, Nenhum Invisível e 22 Visitantes

Thiago Jaqueta, Zero.

Ver toda a lista


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

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

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

Qual o problema ?

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)
avatar
Ranking : Nota B
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Número de Mensagens : 513
Insígnias de JAM :

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

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

Re: Qual o problema ?

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.
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1297
Insígnias de JAM :

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

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

Re: Qual o problema ?

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 =/ .
avatar
Ranking : Nota D
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Número de Mensagens : 711
Insígnias de JAM :

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

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

Re: Qual o problema ?

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)
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1297
Insígnias de JAM :

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

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

Re: Qual o problema ?

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)
avatar
Ranking : Nota D
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Número de Mensagens : 711
Insígnias de JAM :

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

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

Re: Qual o problema ?

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...)
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1297
Insígnias de JAM :

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

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

Re: Qual o problema ?

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

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}
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1297
Insígnias de JAM :

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

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

Re: Qual o problema ?

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